SQL-Tabelle sortieren
Ina
- datenbank
Hallo,
angenommen ich habe folgende Einträge in der Tabelle:
ID Thema Timestamp
1 1 1
2 1 2
3 2 3
4 3 4
und will als ausgabe jeweils nur das thema mit dem höchsten Timestamp in der sortierung nach timestamp abwärts, also so:
ID Thema Timestamp
4 3 4
3 2 3
2 1 2
Probiert habe ich:
"Select distinct thema from tabelle order by timestamp desc"
Allein... es funktioniert nicht. Kann es an der SQL-Version liegen (MySQL 3.22.32)?? Oder habe ich einen Denkfehler?
Ina
Hi,
Select ID, DISTINCT Thema, Timestamp FROM tabelle ORDER BY Timestamp DESC
sollte eigentlich klappen. Hast du mal mysql_error(); ausgegeben?
mfg
yo,
Select ID, DISTINCT Thema, Timestamp FROM tabelle ORDER BY Timestamp DESC
DISTINCT wirkt sich grundsätzlich nur auf eine ganze zeile und nicht einzelne spalten aus, insofern sollte es auch immer vorne stehen.
die version von mysql unterstützt noch keine unterabfragen (ab 4.1), insofern wird eine lösung mit nur einer abfrage schwierig werden.
SELECT thema, MAX(timestamp) AS Zeitstempel
FROM tabelle
GROUP BY thema
ORDER BY 2
diese abfrage gibt dir zu jemden thema den neusten zeitstempel aus. verusch bitte aber nicht noch spalten mit ausgeben zu wollen, die nicht gruppiert wurden und keine Aggregat-funktionen sind.
Ilja