我有一个由列press_release_id关联的tbl_press_release和tbl_press_release_comment。tbl_comment中的每条评论都有一行。
如何计算每个press_release_id有多少条评论?
SELECT
press_release_subject,
(SELECT COUNT(press_release_id)
FROM tbl_press_release_comment) as CommentCount
FROM
tbl_press_release pr
ORDER BY
CommentCount DESC这将返回每个新闻稿,但所有新闻稿的CommentCount都是相同的。
发布于 2011-04-19 21:58:45
您需要使用GROUP BY子句将注释正确地聚合到JOIN语句中,以链接这两个表。
SELECT pr.press_release_subject, COUNT(*) AS CommentCount
FROM tbl_press_release pr
LEFT JOIN tbl_press_release_comment prc ON prc.press_release_id = pr.id
GROUP BY press_release_subject
ORDER BY CommentCount DESC连接可能不会按原样工作,因为我不知道您的列名。
你现在的问题,基本上是询问每个新闻发布的主题,以及每个评论的数量。如果没有GROUP BY,您的数据库管理系统就不知道如何区分计数。
GROUP BY告诉您的DBMS聚合函数必须在指定的列中为每个不同的值返回一条记录。例如,上面的查询告诉我们计算主题为press_release_subject的评论的数量。如果使用聚合函数(如COUNT、SUM、AVG等),则必须在GROUP BY子句中指定要并排返回的任何常规列。
发布于 2011-04-19 21:59:43
SELECT
pr.press_release_subject,
COUNT(*) CommentCount
FROM tbl_press_release pr
LEFT JOIN tbl_press_release_comment prc
ON pr.press_release_id = prc.press_release_id
GROUP BY pr.press_release_subject
ORDER BY COUNT(*) DESChttps://stackoverflow.com/questions/5717446
复制相似问题