首页 >数据库 >mysql教程 >如何高效地查找具有重复日期的表中每个不同ID的最早记录?

如何高效地查找具有重复日期的表中每个不同ID的最早记录?

Linda Hamilton
Linda Hamilton原创
2025-01-17 19:56:14525浏览

How to Efficiently Find the Earliest Record for Each Distinct ID in a Table with Duplicate Dates?

提取每个唯一ID的第一条记录,处理重复日期

想象一个表(我们称之为 MyTable),其中包含以下列:key_ididrecord_date 和其他列 (other_cols)。 目标是针对每个唯一的 record_date 精确定位包含最早的 id 的行。

标准方法通常假设唯一的record_date值,但我们的数据可能有重复。 使用子查询和联接的复杂查询可能会导致不必要的结果。

更简化的方法使用子查询:

<code class="language-sql">SELECT mt.*
FROM MyTable mt
INNER JOIN (
    SELECT id, MIN(record_date) AS MinDate
    FROM MyTable
    GROUP BY id
) t ON mt.id = t.id AND mt.record_date = t.MinDate;</code>

内部子查询通过对数据进行分组,有效地找到每个 record_date 的最早的 MinDate (id)。然后,外部查询将此结果连接回原始表 (MyTable),仅选择 record_date 与子查询中找到的最小日期匹配的行。 这可以有效地检索每个唯一 id 的最早记录,优雅地处理重复日期并避免冗余数据。

以上是如何高效地查找具有重复日期的表中每个不同ID的最早记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

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