繁体   English   中英

SQL:与另一个表中的最新行联接

[英]SQL: Join with most recent row in another table

我正在尝试建立一个简单的论坛作为学习练习。 目前,我有一个topic(questions)表和一个posts表(其中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。 我想要这样,如果不存在帖子,则使用主题日期进行排序。

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

谢谢(我很想简单地解释一下它在尝试学习时的工作原理)。

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

不言自明,当MAX(post_Id)为null时,它将更改顺序优先级。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM