2016-07-27 169 views
-1

enter image description hereMySQL的選擇最新的多個值

我有這個數據庫,要查詢最新的日期 ID用5,10,15,20。此查詢的結果應該只是該數據庫的前四行。

我該怎麼做?

+2

如果您通過發佈您嘗試的SQL來顯示一些工作,總是會感激不盡。 – sstan

+1

你已經把'group by'作爲標籤。另外你需要'max()',你就完成了。 –

回答

1

您可以通過

select * 
from my_table 
where (date, myID) in (select max(date), myID 
         from my_table 
         where myID in (5,10,15,20) 
         group by myID); 
+0

我在最後一行 – user1650487

+0

@ user1650487上收到錯誤,謝謝您錯誤的位置 – scaisEdge

+0

工作,謝謝 – user1650487

2

您可以使用相關子查詢來查找列出的ID的最大日期。 https://en.wikipedia.org/wiki/Correlated_subquery

`SELECT * 
FROM Foo f1 
WHERE f1.Date = (
       SELECT MAX(Date) 
       FROM Foo f2 
       WHERE f1.Id = f2.Id 
       ) 
AND f1.Id IN (5,10,15,20);` 

沒有本地有你確切的表結構,我無法驗證語法,但這是一般的想法。

0

不是最佳解決方案,但它的工作中和組使用:

select myid, mydate from myTable where myid in (5,10,15,20) order By mydate DSC limit 4; 
0

如果它只是你需要的ID和相應的日期,以下就足夠了:

SELECT 
    mt.myID, 
    MAX(mt.date) AS latestDate 
FROM myTable mt 
WHERE mt.myID IN (5, 10, 15, 20) 
GROUP BY myID