出于某种原因,我似乎总是遇到连接问题。无论如何,我有一个文章表和一篇article_comments表。我想按文章表格中的行数排序。因此,评论表中的一行将包含文章ID的列。现在,我的查询只返回articles表中的行,这些行包含链接到它的comments表中的行(只有带注释的文章)。我想返回articles表中的所有行,无论它是否有注释(你可以忽略内连接),但我仍然希望能够按每篇文章的注释数量来订购文章结果,即使它是0.我希望你理解。
这是我目前的查询:
SELECT
a.article_id, a.type,
p.article_id, p.platform_id,
c.comment_id, c.article_id, COUNT(c.comment_id) AS comments
FROM articles AS a
INNER JOIN article_plat_assoc AS p ON a.article_id = p.article_id
LEFT JOIN article_comments AS c ON a.article_id = c.article_id
WHERE p.platform_id = 1
ORDER BY comments DESC
LIMIT 15
这是SQLFiddle: http://sqlfiddle.com/#!2/db1e8/1/0
答案 0 :(得分:0)
因为你有一个聚合函数Count
,你需要GROUP BY
至少一个字段,否则你会得到一行。
SELECT
a.article_id, a.title, c.comment_id, c.article_id, COUNT(c.comment_id) AS comments
FROM articles AS a
LEFT JOIN article_comments AS c ON a.article_id = c.article_id
GROUP BY a.article_id
ORDER BY comments DESC
LIMIT 15
有关详细信息,请参阅MySQL Extensions to GROUP BY