【发布时间】:2024-01-15 15:10:01
【问题描述】:
我需要一个包含帖子 ID、帖子标题、帖子创建_at、用户名和喜欢状态的查询。如果不存在,likes-status 应该为 0。我需要喜欢状态的总和。像这样:
id |title |created_at |name |status |
=========================================
1 |Hello 1 |2015-07-22 |Baker |0 | // 1 - 1
2 |Hallo 2 |2015-07-23 |Tom |0 | // if not exists = 0
我的尝试:
SELECT p.id, p.title, p.created_at, u.name, IFNULL(l.status, 0) as status
FROM posts p
LEFT OUTER JOIN likes l ON l.post_id = p.id
INNER JOIN users u ON u.id = p.user_id
结果:
id |title |created_at |name |status |
=========================================
1 |Hello 1 |2015-07-22 |Baker |1 | // sum this
1 |Hello 1 |2015-07-22 |Baker |-1 | // with this
2 |Hallo 2 |2015-07-23 |Tom |0 |
用户表
id |name |email |password |created_at |
====================================================
1 |Baker |baker@example.com |UHds(& |2015-07-20 |
2 |Tom |tom@example.com |ihj=)? |2015-07-21 |
帖子表
id |user_id |title |created_at |
==================================
1 |1 |Hello 1 |2015-07-22 |
2 |2 |Hello 2 |2015-07-23 |
点赞表
id |user_id |post_id |status |created_at |
===========================================
1 |1 |1 |1 |2015-07-24 |
2 |2 |1 |-1 |2015-07-25 |
【问题讨论】: