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 chat_comment.date
に変更した場合、私はchat_thread.id
によってグループ化するわけではないので、その後、whileループの日付が正確であるが、重複があるので、それは、GROUP BYとは何かを持っていると思う
はありがとう、私はそれはおそらく何か簡単なIを知っていました欠けていた。私はそれができるようになるとすぐにこの答えを受け入れます。 もう一度おねがいします! – Jako
@Jako:ようこそ! – ruakh