mysql查询通过评论文章获取对类别的评论

时间:2015-06-09 02:34:47

标签: mysql

如果标题没有帮助,我会尝试澄清。

我有以下内容:

search-whitespace-regexp

假设我有三个类别(Category Article Comment -------- ----------- ---------- id id id name category_id article_id fictionessays)以及一堆文章和评论,我怎样才能获得三个类别中每个类别的总评论数?我知道通过循环(我在Ruby中工作)很容易,但我更喜欢使用单个MySql查询。或尽可能接近。

我检查了SO的答案,但我发现的很多都是"对一篇文章进行全面评论,"没有最重要的类别使事情复杂化。也许我只是错过了合适的条款?

无论如何,谢谢!

简要编辑:在类别中添加了journalism字段。这是namefictionessays的所在地。

3 个答案:

答案 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)

您可以将 COUNT() GROUP BY 一起使用来计算每个类别的数量。

SELECT `name`, COUNT(*) as CategoryCount
FROM tbl
GROUP BY `name`

有关详细信息,请参阅link或此one