這裏是情況,我爲表forum_topics,forum_replies和users表。 其中_topics包含所有主題,_replies包含所有帖子,並且用戶包含所有用戶。SQL加入一個表和GROUP BY得到正確的行
我想列出的主題爲:
(主題)_ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _(最後回覆時間)
(通過用戶名創建主題)_ __ _ __ _ __ _ __ _ __ _ __(最後回覆方式)
現在,「主題」和「用戶名創建的主題」顯示得很好,但是,最後發佈的帖子和用戶的發佈時間這是錯的。
SQL:
SELECT
forum_topics.id,
forum_topics.category,
forum_topics.subject,
forum_topics.created AS topiccreate,
forum_topics.createdby AS topiccreatedby,
forum_replies.topic,
forum_replies.created AS repliecreated,
forum_replies.createdby AS repliecreatedby,
usertopic.firstname AS topicfirstname,
usertopic.lastname AS topiclastname,
userreplie.firstname AS repliefirstname,
userreplie.lastname AS replielastname,
usertopic.id as topicid,
userreplie.id
FROM forum_topics
JOIN forum_replies ON forum_replies.topic = forum_topics.id
JOIN users usertopic ON forum_topics.createdby = usertopic.id
JOIN users userreplie ON forum_replies.createdby = userreplie.id
WHERE forum_topics.category = '1'
GROUP BY forum_replies.topic
ORDER BY forum_replies.created DESC
我怎樣才能得到「最後回覆時間」和「最後回覆」,以顯示正確的嗎?我嘗試刪除Group By,然後它檢索所有帖子,但是我只想爲每個主題提供最新的後期數據。
至於現在使用GROUP BY時,它會檢索所有的主題只有一次(正確的),但是最後回覆時間最後回覆的顯示不正確的,因爲它似乎檢索數據爲每個第一篇文章話題。
希望你明白我的問題! :/
謝謝! :) –