2017-06-21 93 views
0

我有一個表,其中存儲行的一些字段是id,名稱,日期和版本。我可以有兩行,分別是name,但版本不同,所以文件可以有多個版本。MySQL只能帶回最新的記錄

我的查詢:

SELECT id, name, date, version FROM my_table AS a 

示例輸出(每個新行是另一行):

1 | abc.xls | 1488363249 | 1 
2 | example.xls | 1488363232 | 1 
3 | thirdfile.xls | 1488362312 | 1 
4 | thirdfile.xls | 1488363249 | 2 

唯一我想要做的是帶回了以下內容:

1 | abc.xls | 1488363249 | 1 
2 | example.xls | 1488363232 | 1 
4 | thirdfile.xls | 1488363249 | 2 

發生了什麼事是它注意到id 3和4是相同的文件名,它只帶回了第2版,因爲它是最新的的文件名

我該如何在單個查詢中實現這一點。

回答

1

像這樣的東西應該工作

SELECT t.id, t.name, t.date, t.version 
FROM my_table t 
JOIN (SELECT max(version) max_version, name FROM my_table GROUP BY name) t1 
    ON t.version= t1.max_version AND t.name= t1.name