2011-04-19 123 views

回答

2

您需要使用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,您的DBMS不知道如何分開計數。

GROUP BY告訴您的DBMS聚集函數必須在指定的列中爲每個不同值返回一條記錄。例如,上面的查詢告訴要計算主題爲press_release_subject的評論數。如果使用聚合函數(如COUNT,SUM,AVG等),則必須在GROUP BY子句中指定任何想要並排返回的常規列。

+0

您可以按聚合排序。列別名甚至在'ORDER BY'中是OK的 – 2011-04-19 14:01:06

+0

@Martin啊,必須是'WHERE'子句,你不能那麼。謝謝! – zneak 2011-04-19 14:05:34

+0

感謝您的信息,我還沒有使用GROUP BY,我的SQL-fu很弱! – negzero7 2011-04-19 14:12:04

1
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(*) DESC 
+0

這也適用於我,謝謝! – negzero7 2011-04-19 14:12:22

相關問題