Matthias Apsel: Gezielte Tabellenabfrage

Beitrag lesen

Om nah hoo pez nyeetz, Treziman!

Klar, die höchste ID hat auch das neueste Datum. Timestamp ist auch in der Tabelle, funktioniert damit aber auch nicht.

Ups, da fehlte in meiner Antwort was, und zwar ein „nicht unbedingt“. Du kannst dich NICHT darauf verlassen, dass der Datensatz mit der höchsten ID auch der zuletzt eingetragene ist. Das Datenbankmanagementsystem kann auch Lücken, die durch gelöschte Datensätze entstehen, wieder auffüllen.

Du musst dir also zuerst von jedem nur einen Datensatz holen:

GROUP BY `name`  

Aber den jüngsten dieser Datensätze:

SELECT MAX(`timestamp`) FROM `table` GROUP BY `name`  

Jetzt hast du eine schöne Teilmenge deiner Datensätze, daraus sammelst du jetzt die gewünschten Daten heraus:

SELECT `column` FROM `table` WHERE `timestamp` IN /*teilmenge*/  

SELECT `column` FROM `table` WHERE `timestamp` IN  
       (SELECT MAX(`timestamp`) FROM `table` GROUP BY `name`)  

Matthias

--
Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Kamas und Kamasutra.