我有3個表:MySQL的 - 左連接和COUNT()
- 論壇
ID,名稱,描述
- 的主題
- 帖子
的thread_id,forum_id,USER_ID,標題,內容,視圖
POST_ID,的thread_id,AUTHOR_ID,內容,日期
我想要做的是獲得論壇中的所有主題,並獲得每個主題的帖子數。所以我得到每一個線程(WHERE forum_id = whatever),然後我左連接表格的帖子,以便計算結果。 但有些不起作用。這是我的查詢:
SELECT t.*, u.nick, COUNT(p.post_id) AS postcount
FROM
threads t
LEFT JOIN
users u
ON
u.id = t.user_id
LEFT JOIN
posts p
ON
p.thread_id = t.thread_id
WHERE
t.forum_id = $this->forumID
此查詢將只顯示(我認爲)有任何職位的線程。我也嘗試使用GROUP BY語句,但它使MySQL錯誤...
我該如何解決這個問題?
-----------編輯: 我嘗試添加GROUP BY t.thread_id,但是,正如我以前說過,MySQL的錯誤:
你有一個錯誤你的SQL語法;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊 'WHERE t.forum_id = 2' 的第15行
全面查詢:
SELECT t.*, u.nick, COUNT(p.post_id) AS postcount
FROM
threads t
LEFT JOIN
users u
ON
u.id = t.user_id
LEFT JOIN
posts p
ON
p.thread_id = t.thread_id
GROUP BY
t.thread_id
WHERE
t.forum_id = $this->forumID
編輯2:
我的不好,我把GROUP BY聲明放在了它不適合的地方。現在已經解決了。