我有一个具有以下属性的架构:
- ID1
- ID2
- 更新日期时间
这个模式的主键是{ID1,ID2}。我需要为给定的 ID1 找到 ID2 的值。 ID2 将有多个值。我需要我可以使用“更新日期时间”获取的最新时间。
我有一个 ID1 列表,我需要在一个查询中找到相应的 ID2。
我可以做到,使用两个查询。首先按 ID1 分组并获取 ID1 的最大日期时间。然后获取该“日期时间”值的 ID2(我们可以假设“更新日期时间”对于所有条目都是唯一的)。
但我在想是否有可能在单个查询中做到这一点。
我正在使用 MySQL。
最佳答案
假设您的表名是 MYTABLE
,我使用子查询为每个 获取
值。 ID2
值和 MAX(UPDATED)
>ID1ID1
值作为逗号分隔值传递,显示为 LIST_OF_ID1s
。
下面的查询应该没问题:
SELECT * FROM MYTABLE T1 where T1.ID1 in (LIST_OF_ID1s)
AND T1.ID2 =
(SELECT T2.ID2 FROM MYTABLE T2
where T1.ID1 = T2.ID1
ORDER BY T2.UPDATED DESC LIMIT 1);
工作 SQL Fiddle 演示 here
关于mysql - 用于获取 ID1 的最新条目的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34894444/