[英]Selecting entries from a table based on another table
我正在使用带有SQLITE3后端的论坛。
我的目标是找到最近的帖子下的最近20个主题。 我尝试了这个:
SELECT * FROM Topics INNER JOIN Posts ON Topics.ID = Posts.TopicID ORDER BY Posts.Modified DESC LIMIT 20
这并不是我想要的,因为它每次有新帖子发布时都会重复相同的主题。 我只想要一个话题。
您必须为每个主题获取一个最新的帖子,然后按以下顺序排序:
SELECT Topics.*,
(SELECT MAX(Modified)
FROM Posts
WHERE TopicID = Topics.ID
) AS LastModified
FROM Topics
ORDER BY LastModified DESC
LIMIT 20
联接也可以这样做:
SELECT Topics.*,
MAX(Posts.Modified)
FROM Topics
JOIN Posts ON Topics.ID = Posts.TopicID
GROUP BY Topics.ID
ORDER BY MAX(Posts.Modified) DESC
LIMIT 20
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.