Mysql - 显示所有结果,包括0结果

时间:2013-10-21 12:31:15

标签: mysql zero

所以我有以下表格:

文章

  
      
  • 的article_id
  •   

注释

  
      
  • COMMENT_ID
  •   
  • 的article_id
  •   

我想要做的是搜索所有文章,尽管有或没有评论,并显示文章ID和它有多少评论。

想象一下,我有两篇文章,只有第一篇文章有​​评论。我无法进行查询,向我显示他们和他们的评论编号。

编辑1:

我在阅读回复后做了以下查询,我几乎就在那里!只有一个问题。当文章没有评论时,我得到1而不是0。

  

SELECT *,COUNT(a.article_id)FROM article as LEFT JOIN comment as c ON a.article_id = c.article_id GROUP BY a.article_id;

编辑2:

一个简单的错误。我将“COUNT(a.article_id)”更改为“COUNT(C.article_id)”。太明显了! :)感谢帮助人们;)

  

SELECT *,COUNT(c.article_id)FROM article as LEFT JOIN comment as c ON a.article_id = c.article_id GROUP BY a.article_id;

3 个答案:

答案 0 :(得分:2)

你想要

SELECT 
    IFNULL(COUNT(c.comment_id),0) AS 'Comment Count' , 
    a.article_id 
FROM 
  article a 
LEFT JOIN 
  comment c 
  ON c.article_id

我在这里做的是使用MySQL的LEFT JOIN来比较评论表和文章表(我们的参考)。如果c.article_ida.article_id之间存在匹配,我们会抓取数据。

答案 1 :(得分:2)

试试这个:

SELECT * FROM Article as a INNER JOIN Comment as c ON a.article_id = c.article_id;

答案 2 :(得分:1)

尝试LEFT JOIN

Select 
article_id, 
count(comment_id)
from 
article a
LEFT JOIN comment c on (a.article_id=c.article_id)
GROUP BY article_id