MySQL排序查询

时间:2011-07-08 09:14:55

标签: mysql

我有一个(我希望很容易)MySQL查询的问题。

我有2个表:文章,评论

一篇文章可以有很多评论,因此评论表中有一个外来的article_id。

我想获取所有文章,然后将它们循环显示在页面上,然后获取每篇文章的所有评论数。这很简单,就完成了。现在问题是我想根据评论数量对结果进行排序,但仍然以相同的方式显示结果。

基本上我想:

SELECT *
FROM tbl_articles
JOIN tbl_comments
ORDER BY (the most comments);

我希望这一切都可以在一个查询中完成,因为整个查询是从多组复选框动态构建的,其中单个查询可能如下所示:

SELECT *
FROM tbl_articles
WHERE subject IN (1,2,5)
    AND medium IN (1,3)
    AND date_active > NOW()
    AND...

我很乐意提供更多信息。

1 个答案:

答案 0 :(得分:0)

像...一样的东西。

SELECT *, COUNT(tbl_comments.id) as comments_count
FROM tbl_articles JOIN tbl_comments ON (tbl_comments.article_id = tbl_articles.id)
GROUP BY tbl_comments.article_id
ORDER BY comments_count;