2011-09-29 90 views
3

指望我有表postint post_id, varchar title, text content
並表commentint comment_id, int post_id, varchar content其中POST_ID是一個外鍵引用表後。如何連接語句

我如何通過評論計數得到post_id和每個帖子的評論總數。謝謝。

回答

5

如果你想有沒有意見的帖子:

SELECT 
    post.post_id, 
    --post.title, 
    --post.content, 
    COUNT(comment.post_id) AS comment_count 
FROM post 
LEFT JOIN comment ON post.post_id = comment.post_id 
GROUP BY post.post_id 
ORDER BY comment_count DESC 

(此查詢使用MySQLs GROUP BY with hidden columns擴展名)。

如果你不希望有任何意見,你可以用一個簡單的查詢職位:

SELECT post_id, COUNT(*) AS comment_count 
FROM comment 
GROUP BY post_id 
ORDER BY comment_count DESC 
+0

@馬克拜爾斯我想我自己和它的工作。我的SQL是:從作爲COMM評論,後選擇p.post_id, 計數(comm.comment_id)作爲COMMENT_COUNT 爲p 其中comm.post_id = p.post_id GROUP BY p.post_id ORDER BY COMMENT_COUNT DESC。哪一個更好用? – LotusH

+0

@LotusH:您的查詢不會返回沒有評論的帖子。 –

+0

這對我的應用程序來說已經足夠了:)感謝您的幫助。 – LotusH