Ina: SQL-Tabelle sortieren

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

  1. Hi,

    Select ID, DISTINCT Thema, Timestamp FROM tabelle ORDER BY Timestamp DESC

    sollte eigentlich klappen. Hast du mal mysql_error(); ausgegeben?

    mfg

    1. 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