2017-06-21 19 views
0

Ich habe eine Tabelle, die Zeilen mit einigen Feldern speichert, die ID, Name, Datum und Version sind. Ich könnte zwei Zeilen mit der gleichen name aber eine andere Version haben, so dass eine Datei mehrere Versionen haben kann.MySQL bringt nur den letzten Datensatz zurück

Meine Frage:

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

Beispiel Ausgabe (jede neue Zeile ist eine weitere Reihe):

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

Was ich tun möchte, ist nur die folgende bringen:

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

Was passiert ist, war es bemerkt ID 3 und 4 waren der gleiche Dateiname und es brachte nur Version 2 zurück, da es die letzte war von diesem Dateinamen

Wie würde ich dies in einer einzigen Abfrage erreichen.

Antwort

1

wie dieses Etwas sollte

arbeiten
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 
Verwandte Themen