[英]SQL query for fetching latest entry for ID1
我有一个具有以下属性的架构:
此架构的主键是{ID1,ID2}。 我需要找到给定ID1的ID2值。 ID2将有多个值。 我需要一个可以使用“更新日期时间”获取的最新时间。
我有一个ID1的列表,我需要在一个查询中找到对应的ID2。
我可以使用两个查询来做到这一点。 首先按ID1分组,并获取ID1的最大日期时间。 然后获取该“日期时间”值的ID2(我们可以假设“更新日期时间”对于所有条目都是唯一的)。
但是我在想是否有可能在单个查询中执行此操作。
我正在使用MySQL。
假设您的表名是MYTABLE
,我已使用子查询为每个ID1
值获取具有MAX(UPDATED)
的ID2
值。 ID1
值作为逗号分隔的值传递,如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演示
尝试这个:
SELECT t0.ID1,t0.ID2,t0.Update_date_time
FROM table AS t0
LEFT JOIN table AS t1 ON t0.ID1=t1.ID1 AND t1.Update_date_time>t0.Update_date_time
WHERE t1.ID1 IS NULL;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.