MySQL - 如何在一个查询中从注释表中获取注释数,与其他3个表一起使用JOIN

时间:2017-09-25 18:51:57

标签: php mysql join optimization mariadb

我是MySQL的新手,但我正在测试并创建一个你在例如:'Facebook'中看到的某种群组功能。我想显示登录用户加入的所有群组帖子的列表,以及它有多少条评论。

表: group_table - >包含所有组 user_table - >包含所有用户
group_users - >现在,这包含链接到每个组的每个用户
例如:groupuser:1 | groupid:4 | admin:1(bool)
post_table - >包含所有帖子
comment_table - >包含所有评论

所以......这是我的尝试:

SELECT pt.postid, pt.postcont, pt.ctime, gt.groupname, 
COUNT(cm.commid) AS commNumber 
FROM post_table pt 
INNER JOIN group_users gu 
ON pt.gid = gu.gid 
INNER JOIN group_table gt
ON gu.gid = gt.gid
LEFT JOIN comment_table cm 
ON pt.postid = cm.postid
WHERE gu.groupuserid = {user_id}

我希望结果显示:

postid | postcontent | ctime | groupname | commentNumber

1 loremipsum {date} coolgroup如果有任何评论,则显示{nr of comments否则0}

但目前,问题是只检索包含评论的帖子并在结果中显示(commNumber是正确的),但是那些没有评论而不是为commNumber显示'0'的帖子,帖子本身没有被检索

0 个答案:

没有答案