按两个表中两个日期值中的最大值排序

时间:2013-01-06 21:00:58

标签: mysql

我正在一个简单的论坛上工作,在尝试对列出的主题进行排序时遇到困难 - 如果主题都有回复那么它工作正常,如果没有回复那么它工作正常但如果他们有两者的组合那么它不能正常工作。我需要从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

forum_topics

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

forum_replies

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

我做错了什么?

0 个答案:

没有答案