use*_*694 4 mysql sql select count
我正在管理用户可以喜欢的社交网络数据库,评论并为帖子创建了一个表格,例如和评论.
like --- post_id
user_id
comment --- post_id
user_id
Run Code Online (Sandbox Code Playgroud)
现在,当我运行时select * from post
,我希望能够添加两列,likes
并comments
计算每个列的喜欢和评论的数量post_id
.
我怎样才能做到这一点?
您需要加入两个表.
SELECT post.*, COUNT(likes.id) AS like_count, COUNT(comment.id) AS comment_count
FROM post
LEFT JOIN likes ON post.id = likes.post_id
LEFT JOIN comment ON post.id = comment.post_id
GROUP BY post.id
Run Code Online (Sandbox Code Playgroud)
像这样:
SELECT *
, (SELECT COUNT(*) FROM likes WHERE post_id=p.id) as LIKE_COUNT
, (SELECT COUNT(*) FROM comment WHERE post_id=p.id) as COMMENT_COUNT
FROM post p
Run Code Online (Sandbox Code Playgroud)