【发布时间】:2021-08-29 05:45:56
【问题描述】:
表格:
Posts Comments Likes Users
ID | User_id ID | Post_id ID | Post_id ID | Name
------- -------- -------- --------
1 | 101 1 | 1 1 | 3 101 | 'Michael'
2 | 101 2 | 3 2 | 3 202 | 'Daniel'
3 | 303 3 | 3 3 | 3 303 | 'Scott'
我希望查询的是:
ID | Total_comments | Total_likes | Name
1 | 1 | 0 | 'Michael'
2 | 0 | 0 | 'Michael'
3 | 2 | 3 | 'Scott'
但这是我得到的:
ID | Total_comments | Total_likes | Name
1 | 1 | 0 | 'Michael'
2 | 0 | 0 | 'Michael'
3 | 6 | 6 | 'Scott'
使用此查询:
SELECT Posts.ID,
COUNT(Comments.Post_id) as Total_comments,
COUNT(Likes.Post_id) as Total_likes,
Users.Name
FROM Posts INNER JOIN Users
ON Users.ID = Posts.User_id
LEFT JOIN Comments
ON Comments.Post_id = Posts.ID
LEFT JOIN Likes
ON Likes.Post_id = Posts.ID
GROUP BY Posts.ID
我想知道,上面的查询可以通过什么方式修改以返回预期的结果?实现这一目标的好方法是什么?
【问题讨论】:
标签: mysql sql database count left-join