使用 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中文网其他相关文章!