SQL:加入另一个表中的最新行

时间:2013-12-09 16:48:49

标签: mysql

我正在尝试建立一个简单的论坛作为学习练习。目前我有一个主题(问题)表和一个帖子表(其中post_thread_id指的是主题ID)。

我想按照该主题中最新帖子的显示顺序显示主题。在线查看我使用了这个命令:

SELECT topics.topic_title, topics.topic_date, topics.topic_title, max( posts.post_date )
FROM topics
LEFT OUTER JOIN posts ON topics.topic_id = posts.post_thread_id
GROUP BY topics.topic_id
ORDER BY MAX( posts.post_id ) ASC

似乎有用。但是如果没有链接到主题的帖子(即空主题),它就不起作用,因为每次都会出现NULL。我想要它,这样如果没有帖子,则主题日期用于订购。

如果没有帖子,如何选择主题日期?

谢谢(我很欣赏一个简单的解释,说明它是如何工作的,因为我正在努力学习)。

1 个答案:

答案 0 :(得分:0)

ORDER BY 
CASE WHEN MAX( posts.post_id ) IS NULL THEN 1 ELSE 0 END ASC

自我解释,当MAX(post_Id)为空时,它将改变订单优先级。