所以我有以下表格:
文章
- 的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;
答案 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_id
和a.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