簡體   English   中英

SQL查詢以獲取ID1的最新條目

[英]SQL query for fetching latest entry for ID1

我有一個具有以下屬性的架構:

  1. ID1
  2. ID2
  3. 更新日期時間

此架構的主鍵是{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;

在小提琴中完成http://sqlfiddle.com/#!9/8e3879/8/0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM