mysql - 根据另一个表从一个表中选择条目

标签 mysql sql database sqlite

我正在使用 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/

相关文章:

database - 手机Phonegap/HTML5 App持久化解决方案

sql-server - SQL求最大值然后判断哪个名字的值最大

mysql - 我如何在java中的输出中附加指定字符,其中输出是从数据库获取的

mysql 恢复另一台服务器上的文件

php - 在notepad++中使用php文件连接到XAMPP SQL

mysql - SQL 在字符串中查找确定的次数

sql - plpgsql 函数的动态部分

mysql - 如何在 MySQL 中返回数据透视表输出?

php - 在 php 中将选中的复选框中的数据保存到数据库中的一行

mysql - 每年在mysql中创建一个触发器