我在连接 mysql 中的三个表时遇到问题。
假设我们有一个名为posts
我将我的条目保存在其中,我有一个名为likes
我将 user_id 和 post_id 存储在其中,第三个表名为comments
我在其中存储 user_id 和 post_id 以及评论的文本。
我需要一个查询来获取我的条目列表,以及每个条目的点赞数和评论数。
我使用这个查询:
SELECT posts.id, count(comments.id) as total_comments, count(likes.id) as total_likes
FROM `posts`
LEFT OUTER JOIN comments ON comments.post_id = posts.id
LEFT OUTER JOIN likes ON likes.post_id = posts.id
GROUP BY posts.id
但是这个查询有一个问题,如果一个项目的评论为空,点赞数就可以了,但是假设一个条目有2个评论和4个点赞,那么total_comments和total_likes都将为“8”,这意味着mysql会乘以他们。
我很困惑,我不知道我该怎么办。
提前致谢。
Use count(distinct comments.id)
and count(distinct likes.id)
,前提是这些 id 是唯一的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)