私は単純なフォーラムに取り組んでおり、リストされているときにトピックを並べ替えようとすると苦労しています-トピックすべてに返信がある場合は正常に機能し、返信がない場合は正常に機能しますが、両方の組み合わせがある場合は機能しません正しく機能します。forum_topics と forum_replies から最大の値を取得し、その値を使用して並べ替える必要があります。
私は最もよく調べましたが、それは私が必要としているもののようですが、私にはうまくいきません:
SELECT
GREATEST(MAX(forum_topics.topic_date),MAX(forum_replies.reply_date)) as g_date
from forum_topics
left join forum_replies on forum_topics.topic_id=forum_replies.reply_topic
where forum_topics.topic_category='$category_id'
GROUP BY forum_topics.topic_id
ORDER BY g_date desc
フォーラム_トピック
topic_id topic_date topic_category
1 26/12/2012 23:09 2
2 26/12/2012 10:13 5
3 27/12/2012 02:04 2
4 27/12/2012 02:25 7
5 27/12/2012 02:32 3
6 27/12/2012 02:46 2
8 27/12/2012 02:49 2
9 27/12/2012 16:05 2
10 06/01/2013 19:57 2
11 06/01/2013 20:35 2
12 06/01/2013 20:36 5
フォーラム_返信
reply_id reply_date reply_topic
1 29/12/2012 19:14 1
2 26/12/2012 23:49 3
3 31/12/2012 00:00 1
4 27/12/2012 02:03 1
5 27/12/2012 02:15 3
6 27/12/2012 02:16 3
7 27/12/2012 02:17 3
8 27/12/2012 02:26 4
9 27/12/2012 03:19 3
10 27/12/2012 03:26 3
11 27/12/2012 03:29 3
12 27/12/2012 03:29 3
13 27/12/2012 03:30 3
14 27/12/2012 03:32 3
15 27/12/2012 03:35 3
17 27/12/2012 15:23 8
18 06/01/2013 20:35 2
19 06/01/2013 20:38 1
カテゴリ id=2 の希望の結果:
1 06/01/2013 20:38 (reply 19)
11 06/01/2013 20:35 (topic 11)
10 06/01/2013 19:57 (topic 10)
9 27/12/2012 16:05 (topic 9)
3 27/12/2012 03:35 (reply 15)
6 27/12/2012 02:46 (topic 6)
実際の出力
1 06/01/2013 20:38:23
3 27/12/2012 03:35:33
6 27/12/2012 02:46:57
9 27/12/2012 16:05:42
10 06/01/2013 19:57:33
11 06/01/2013 20:35:48
私は何を間違っていますか?