我正在使用 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
关于mysql - 根据另一个表从一个表中选择条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30289761/