[英]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.