table: chat_thread
+-----------+----------+--------------------+
| id | title | date |
+-----------+----------+--------------------+
| 1 | Thread 1 | 2012-02-16 01:12:40|
| 2 | Thread 2 | 2012-02-17 02:32:44|
+-----------+----------+--------------------+
table: chat_comment
+-----------+----------+--------------------+
| id | t_id | date |
+-----------+----------+--------------------+
| 1 | 1 | 2012-02-19 19:45:32|
| 2 | 1 | 2012-02-15 22:29:20|
+-----------+----------+--------------------+
這是我的情況,我使用線程和註釋創建基本論壇。我想按最後評論日期排序,如果沒有評論,那麼線程的開始日期。我遇到的問題是在我的while循環中試圖回顯出最後一個回覆日期。MySQL GROUP BY - 返回錯誤日期
mysql_query("
SELECT *,
chat_comment.date AS commentDate,
chat_thread.date AS threadDate
FROM chat_thread
LEFT JOIN chat_comment ON chat_thread.id = chat_comment.t_id
GROUP BY chat_thread.id
ORDER BY commentDate DESC, threadDate DESC");
我的問題不是線程的正確順序,而是評論日期。在我上面的表格中,如果我試圖回顯日期,我目前得到的是2012-02-15 22:29:20而不是最近的2012-02-19 19:45:32。
有什麼我做錯了嗎?
我認爲這事做與GROUP BY,因爲如果我將其更改爲GROUP BY chat_comment.date
然後在while循環的日期是準確的,但也有重複的,因爲我沒有被chat_thread.id分組
謝謝你,我知道這可能是一些簡單的我失蹤。我會盡快接受這個答案。 再次感謝! – Jako 2012-02-20 01:26:44
@Jako:不客氣! – ruakh 2012-02-20 01:28:47