0

所以我有以下表格:

文章

  • article_id

评论

  • comment_id
  • article_id

我想要做的是搜索所有文章,无论是否有评论,并显示文章 ID 以及它有多少评论。

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

编辑1:

阅读回复后,我进行了以下查询,我快到了!只有一个问题。当一篇文章没有评论时,我不会得到 0,而是得到 1。

SELECT *,COUNT(a.article_id) FROM article as a 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 a LEFT JOIN comment as c ON a.article_id = c.article_id GROUP BY a.article_id;

4

3 回答 3

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

我在这里所做的是使用 MySQLLEFT JOIN将评论表与文章表(我们的参考)进行比较。c.article_id在和之间匹配的地方a.article_id,我们获取数据。

于 2013-10-21T12:33:08.833 回答
2

试试这个:

SELECT * FROM Article as a INNER JOIN Comment as c ON a.article_id = c.article_id;
于 2013-10-21T12:36:28.607 回答
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
于 2013-10-21T12:33:26.330 回答