我们有两张table: articles
, comments
. 此表的结构:
articles(article_id(PK), etc);
comments(comment_id(PK), article_id(FK)).
我需要一份评论最多的文章的列表。我使用了请求:
SELECT articles.article_id, COUNT(comments.article_id)
FROM comments
INNER JOIN articles ON comments.article_id = articles.article_id AND comments.article_id = :article_id.
获取包含3篇评论最多的文章的数据数组的请求应该是什么?用sql真的可以做到这一点吗?
4条答案
按热度按时间8fq7wneg1#
有一种更简单的方法,您可以在article表中添加'n-comments'列并将其初始化为零,然后使用提交注解的函数,在每个注解之后更新'n-comments++'的值。
瘦每一篇文章将包含其评论的数量,这将是非常容易选择评论最多的文章:“选择文章\u id从文章顺序n评论desc限制50”
我想会更简单更快,希望能有所帮助
b4qexyjb2#
您应该能够通过此查询获得所需内容:
e3bfsja23#
下面的查询将为您提供一个文章列表和每个文章的评论数量,按评论数量的降序排列
qrjkbowd4#
如果你只需要文章id,那么
join
不需要: