繁体   English   中英

从基于另一个表的表中选择条目

[英]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.

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