MySQL从另一个表加入计数匹配的记录,但我也需要ZERO值

时间:2014-08-27 19:05:36

标签: mysql sql join count

我的查询的目标是:使用1个查询获取文章表中的列以及为每篇文章编写的注释编号。 (我有一个单独的评论表,两个表都是My_ISAM)如果任何文章没有评论,那么它也应该被计为零。

将接受的答案参数从this question转换为我的需要,我得到了以下解决方案:

我的查询不足是:

SELECT t1.id, t1.title, count(*) AS `count_of_comments` 
FROM articles t1 
JOIN comments t2 ON t1.id = t2.commented_article_id 
GROUP BY t1.id, t1.title 
LIMIT 0,30

这个查询给了我2个结果行但是我有3篇文章,我需要得到所有这些。 (1篇文章没有评论)

通过编辑上面的查询,我的要求是否可以实现,如果是,你可以帮我吗?

1 个答案:

答案 0 :(得分:4)

使用left join并计算匹配项:

SELECT t1.id, t1.title, count(t2.commented_article_id) AS `count_of_comments` 
FROM articles t1 LEFT JOIN
     comments t2
     ON t1.id = t2.commented_article_id 
GROUP BY t1.id, t1.title 
LIMIT 0, 30;