Hallo Zusammen
Ich kenne mich in SQL nur mit den Basics aus und stehe nun bei einem Problem an. Ich möchte eine Abfrage aus einer MySQL DB machen, bei der nur jeweils die Zeilen mit der höchsten Versions-Nummer ausgegeben werden,
Man hat z.B. folgende Tabelle:
________________________
| id | Version | Text |
=====================
| 1 | 1 | row1 |
| 1 | 2 | row2 |
| 2 | 1 | row3 |
---------------------------
In meiner Ausgabe will ich nun nur die Datensätze mit der höchsten Version-Nummer haben. Also z.B:
| 1 | 2 | row2 |
| 2 | 1 | row3 |
Wenn ich nun folgende Abfgrage verwende:
SELECT id, max(version), text FROM `test` Group by id
bekomme ich folgendes Ergebnis.
| 1 | 2 | row1 |
| 2 | 1 | row3 |
Ich bekomme also nur die grösste Version-Nummer für die jeweilige ID zurück, aber nicht die ganze Zeile, die zu der ID gehört. Die Spalte Text gehört immer noch zum ersten Datensatz.
Müsste man hier die Abfrage mit einer zweiten Select Anweisung in einer Where-Abfrage machen oder etwas in der Art?
Vielen Dank für eure Hilfe.
Ich kenne mich in SQL nur mit den Basics aus und stehe nun bei einem Problem an. Ich möchte eine Abfrage aus einer MySQL DB machen, bei der nur jeweils die Zeilen mit der höchsten Versions-Nummer ausgegeben werden,
Man hat z.B. folgende Tabelle:
________________________
| id | Version | Text |
=====================
| 1 | 1 | row1 |
| 1 | 2 | row2 |
| 2 | 1 | row3 |
---------------------------
In meiner Ausgabe will ich nun nur die Datensätze mit der höchsten Version-Nummer haben. Also z.B:
| 1 | 2 | row2 |
| 2 | 1 | row3 |
Wenn ich nun folgende Abfgrage verwende:
SELECT id, max(version), text FROM `test` Group by id
bekomme ich folgendes Ergebnis.
| 1 | 2 | row1 |
| 2 | 1 | row3 |
Ich bekomme also nur die grösste Version-Nummer für die jeweilige ID zurück, aber nicht die ganze Zeile, die zu der ID gehört. Die Spalte Text gehört immer noch zum ersten Datensatz.
Müsste man hier die Abfrage mit einer zweiten Select Anweisung in einer Where-Abfrage machen oder etwas in der Art?
Vielen Dank für eure Hilfe.