如果标题没有帮助,我会尝试澄清。
我有以下内容:
search-whitespace-regexp
假设我有三个类别(Category Article Comment
-------- ----------- ----------
id id id
name category_id article_id
,fiction
,essays
)以及一堆文章和评论,我怎样才能获得三个类别中每个类别的总评论数?我知道通过循环(我在Ruby中工作)很容易,但我更喜欢使用单个MySql查询。或尽可能接近。
我检查了SO的答案,但我发现的很多都是"对一篇文章进行全面评论,"没有最重要的类别使事情复杂化。也许我只是错过了合适的条款?
无论如何,谢谢!
简要编辑:在类别中添加了journalism
字段。这是name
,fiction
,essays
的所在地。
答案 0 :(得分:2)
试试这个SQL语句。
SELECT `name`, COUNT(*) as commentcount
FROM Category
INNER JOIN Article ON Article.category_id=Category.id
INNER JOIN Comment ON Comment.article_id=Article.id
GROUP BY `name`
答案 1 :(得分:1)
您是否考虑过按文章选择总评论,然后让父母选择链接类别名称。即
SELECT category.name, a.comment_count FROM
(
SELECT article.category_id AS cat_id, COUNT(1) AS comment_count
FROM article INNER JOIN comment
ON article.id = comment.article_id
GROUP BY article.category_id
) AS a,
category
WHERE category.id = a.cat_id
答案 2 :(得分:0)