MySQL查询评论文章的数量以及文章详细信息

时间:2014-11-29 08:52:28

标签: mysql join

我有三个表,用户,文章和评论,如下所示:

用户:

id | username

文章:

id | user_id | title | content | time

评论:

id | article_id | content | time

user_id是文章作者在Users中的用户ID; article_id是评论文章在Articles中的ID。

现在我想列出文章,展示他们的作家usernametitlecontenttimenumber of commentsusername来自Usersnumber of comments来自Comments,通过计算某些内容,其余字段来自Articles

如何在单个语句中编写查询?

我试过

SELECT a.*, count(c.id) AS NUM_COMMENTS, u.username
    FROM Commetns c
    JOIN Users u
    INNER JOIN Articles a
    WHERE a.id = c.article_id AND u.id=a.user_id
    GROUP BY a.id

但这只会返回带条评论的文章。我希望还列出没有评论的文章。

1 个答案:

答案 0 :(得分:1)

您需要left join才能获得没有评论的文章

select 
a.*,
count(c.id) AS NUM_COMMENTS,
u.username
from Articles a
JOIN Users u on  u.id=a.user_id
left join Commetns c on c.article_id = a.id
GROUP BY a.id