首页 >数据库 >mysql教程 >如何在SQL中选择最近的3条不同记录?

如何在SQL中选择最近的3条不同记录?

Barbara Streisand
Barbara Streisand原创
2024-11-28 07:06:111033浏览

How to Select the 3 Most Recent Distinct Records in SQL?

使用 SQL 选择最近的记录

在此查询中,任务是从表中提取三个最新记录,同时确保特定列 otheridentifier 中的值是不同的。尝试了以下 SQL 语句:

SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3

但是,由于 SQL 中分组优先于排序,因此该查询产生了意外结果。为了达到预期的结果,需要一种更复杂的方法:

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` as `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3

此查询由一个嵌套的 select 语句组成,该语句标识每个不同的 otheridentifier 值的最新记录。然后对结果进行过滤,以确保仅检索到最近的三个记录。

以上是如何在SQL中选择最近的3条不同记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn