我正在嘗試獲取最新的帖子,這些帖子在用戶,主題和最後一篇帖子中都有vars。問題是我正在嘗試的當前方法帶回了重複線程,因爲新帖子已經發布在這些線程中,而我只想要一個帖子返回每個線程,而不是所有最新的帖子。MySql - 從表中獲取最新的行,沒有重複的主題ID
SELECT t.thread_id, u.user_name, p.post_entry
FROM forum_thread as t
LEFT JOIN forum_post AS p ON p.post_thread = t.thread_id
LEFT JOIN user AS u ON u.user_id = p.post_user
ORDER BY t.thread_lastpost DESC LIMIT 0,8
目前正在返回:
/-----------------------------------------/
| 7049 | USERNAME | Post Entry |
|----------------------------------------|
| 7049 | USERNAME | Post Entry |
|----------------------------------------|
| 7049 | USERNAME | Post Entry |
|----------------------------------------|
| 7049 | USERNAME | Post Entry |
|----------------------------------------|
| 7650 | USERNAME | Post Entry |
|----------------------------------------|
| 7068 | USERNAME | Post Entry |
|----------------------------------------|
| 7056 | USERNAME | Post Entry |
|----------------------------------------|
| 7136 | USERNAME | Post Entry |
我想刪除這些第一重複的ID,只留一個與該線程的最新帖子輸入。
我希望我已經解釋得足夠好讓人們理解。
謝謝。
-----------------編輯--------------------
得到它的工作與GROUP BY:
SELECT t.thread_id, u.user_id, p.post_entry FROM forum_post AS p LEFT JOIN forum_thread AS t ON t.thread_id = p.post_thread LEFT JOIN user AS u ON u.user_id = p.post_user GROUP BY t.thread_id ORDER BY t.thread_lastpost DESC LIMIT 0,8
不知道,但我認爲你可以解決這個使用GROUP BY的SQL語句,通過用戶名分組,通過插入ID排序,然後想起來了每個組中的第一個。對不起,但我無法做正確的查詢來幫助你。 –
嘗試使用SELECT DISTINCT t.thread_id - DISTINCT關鍵字是此處的重要部分。 – Bryan
我得到它與GROUP BY一起工作,但想知道什麼會更好的表現,或DISTINCT? –