Ich habe eine Tabelle mit diversen Spalten, aus der ich eine Abfrage machen will.
Die Spalten auf die es ankommt sind
ID | Name | Code | Timestamp
Die ID ist einmalig, alle anderen Felder können doppelte Einträge enthalten, auch bunt gemischt, also z.B. gleicher Code mit verschiedenem Name, oder gleicher Name mit verschiedenem Code.
Auch der Timestamp kann doppelt vorkommen, nur die Kombination von Code und Timestamp ist jeweils einmalig.
Ich möchte nun alle Spalten aus allen Datensätze mit verschiedenem Code lesen.
Wenn ein Code mehrfach vorkommt, soll er nur den Datensatz mit dem grössten Timestamp lesen.
Das Ergebnis soll nach Name sortiert werden.
Ich brauche also etwa sowas:
Aber wie stelle ich es an, dass er innerhalb vom GROUP BY jeweils den Datensatz mit dem grössten Timestamp nimmt?
Die Spalten auf die es ankommt sind
ID | Name | Code | Timestamp
Die ID ist einmalig, alle anderen Felder können doppelte Einträge enthalten, auch bunt gemischt, also z.B. gleicher Code mit verschiedenem Name, oder gleicher Name mit verschiedenem Code.
Auch der Timestamp kann doppelt vorkommen, nur die Kombination von Code und Timestamp ist jeweils einmalig.
Ich möchte nun alle Spalten aus allen Datensätze mit verschiedenem Code lesen.
Wenn ein Code mehrfach vorkommt, soll er nur den Datensatz mit dem grössten Timestamp lesen.
Das Ergebnis soll nach Name sortiert werden.
Ich brauche also etwa sowas:
Code:
SELECT * FROM `tabelle` GROUP BY `Code` ORDER BY `Name`;
Aber wie stelle ich es an, dass er innerhalb vom GROUP BY jeweils den Datensatz mit dem grössten Timestamp nimmt?