Mysql 当另一个表上的行计数为0时,无法获取结果

Mysql 当另一个表上的行计数为0时,无法获取结果,mysql,select,count,left-join,Mysql,Select,Count,Left Join,我正在建立一个讨论板。。。我有一个包含帖子的表格和另一个包含评论的表格。。。外来id是post\u id。现在,我试图根据每个帖子的评论数量对帖子进行排序。我当前使用的查询: SELECT username, posts.post_id, category_id, UNIX_TIMESTAMP(posts.datetime) AS datetime, posts.body, posts.owner_id, COUNT(comment_id) AS number FROM posts, comme

我正在建立一个讨论板。。。我有一个包含帖子的表格和另一个包含评论的表格。。。外来id是
post\u id
。现在,我试图根据每个帖子的评论数量对帖子进行排序。我当前使用的查询:

SELECT username, posts.post_id, category_id, UNIX_TIMESTAMP(posts.datetime) AS datetime, posts.body, posts.owner_id, COUNT(comment_id) AS number
FROM posts, comments, user
WHERE posts.post_id = comments.post_id AND posts.owner_id = user.`id`
GROUP BY comments.post_id
ORDER BY number DESC 

查询工作正常,但问题是没有选择没有注释的帖子。我想显示帖子,不考虑它们是否有评论,但我想按评论数对它们进行排序。

在评论表上使用左连接

试试这个:

SELECT username, p.post_id, category_id, UNIX_TIMESTAMP(p.datetime) AS DATETIME, 
       p.body, p.owner_id, COUNT(comment_id) AS number
FROM posts p 
INNER JOIN user u ON p.owner_id = u.id
LEFT JOIN comments c ON p.post_id = c.post_id 
GROUP BY p.post_id
ORDER BY number DESC;

在注释表上使用左连接

试试这个:

SELECT username, p.post_id, category_id, UNIX_TIMESTAMP(p.datetime) AS DATETIME, 
       p.body, p.owner_id, COUNT(comment_id) AS number
FROM posts p 
INNER JOIN user u ON p.owner_id = u.id
LEFT JOIN comments c ON p.post_id = c.post_id 
GROUP BY p.post_id
ORDER BY number DESC;

使用左连接。“自/何处连接”等同于“内部连接”:

SELECT username, p.post_id, category_id, UNIX_TIMESTAMP(p.datetime) AS datetime,
   p.body, p.owner_id, COUNT(comment_id) AS number
FROM posts p
LEFT JOIN comments c ON p.post_id = c.post_id
LEFT JOIN user u ON p.owner_id = u.`id`
GROUP BY c.post_id
ORDER BY number DESC 

使用左连接。“自/何处连接”等同于“内部连接”:

SELECT username, p.post_id, category_id, UNIX_TIMESTAMP(p.datetime) AS datetime,
   p.body, p.owner_id, COUNT(comment_id) AS number
FROM posts p
LEFT JOIN comments c ON p.post_id = c.post_id
LEFT JOIN user u ON p.owner_id = u.`id`
GROUP BY c.post_id
ORDER BY number DESC 

就这样。谢谢从posts p中删除“,”紧跟其后“,这是一个错误,每个人在SQL中都至少做过一次。以后更愿意打电话给JOIN。这样就可以了。谢谢从posts p中删除“,”紧跟其后“,这是一个错误,每个人在SQL中都至少做过一次。希望以后能打电话加入。谢谢。。。完美的现在,我不知道该接受哪个答案:汉克斯。。。完美的现在,我不知道该接受哪个答案:s