2017-06-21 12 views
0

私はいくつかのフィールドがID、名前、日付とバージョンである行を格納するテーブルを持っています。私は同じnameの2つの行を持つことができますが、異なるバージョンを持つことができるので、ファイルは複数のバージョンを持つことができます。MySQLは最新のレコードを返すだけです

マイクエリ:

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

出力例(それぞれの新しい行は別の行がある):

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

1 | abc.xls | 1488363249 | 1 
2 | example.xls | 1488363232 | 1 
3 | thirdfile.xls | 1488362312 | 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 
関連する問題