首页 >数据库 >mysql教程 >如何选择另一列中具有唯一值的最近 3 条记录?

如何选择另一列中具有唯一值的最近 3 条记录?

Barbara Streisand
Barbara Streisand原创
2024-11-27 03:47:09203浏览

How to Select the 3 Most Recent Records with Unique Values in Another Column?

选择具有不同值的最新记录:修订方法

提出的问题涉及从基于表的表中检索三个最新记录在时间列上,附加条件是这些记录必须在另一列(称为 otheridentifier)中具有不同的值。为此,需要多方面的 SQL 查询。

原始查询的缺点

由于 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

解释:

  • 子查询检索每个不同的 otheridentifier 值的最新记录的 id。该子查询确保唯一性。
  • 主查询然后根据时间列从表中选择前三条记录,确保它们具有唯一的 otheridentifier 值。
  • 最后,这些记录按以下顺序排序它们的时间值按降序排列,并且仅限于最近的三个。

以上是如何选择另一列中具有唯一值的最近 3 条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

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