Thomas: Select DISTINCT ORDER BY

Beitrag lesen

Hallo zusammen,

Ich hab grad ein kleines SQL-Problem, bei dem ich momentan auf dem Schlauch stehe.

Und zwar habe ich die folgende Datenbanktabelle:
tabForumBeitrag (int id, text thema, text beitrag, int datecmp, int kategorie)

Nun versuche ich, eine Liste aller Themen auszugeben und diese so zu sortieren, dass das Thema mit dem neusten Beitrag oben steht.

SELECT DISTINCT thema FROM tabForumBeitrag WHERE kategorie=$Kategorie ORDER BY datecmp DESC

Problem:
Hier führt SQL zuerst das Select DISTINCT aus und sortiert anschließend die Ergebnismenge. So kann es passieren, dass die Sortierung nicht korrekt ist.

SELECT DISTINCT thema, datecmp FROM tabForumBeitrag WHERE kategorie=$Kategorie ORDER BY datecmp DESC

Problem:
So listet SQL natürlich aufgrund des hinzugekommenen Attributs datecmp jedes Thema mehrfach auf.

Ich suche nun praktisch nach einer Abfrage, das mir jedes Thema nur einzeln ausgibt und trotzdem datecmp als Sortierkriterium berücksichtigt.

Ich habs auch mal mit dem folgenden Sub-Select versucht:

SELECT DISTINCT thema FROM (SELECT thema, datecmp FROM tabForumBeitrag WHERE kategorie=8 ORDER BY datecmp DESC)

Da gibt mir MySQL aber die folgende Fehlermeldung zurück:

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT thema , datecmp FROM tabForumBeitrag WHERE kategorie = 8

Hat jemand eine Idee?

Vielen Dank vorab für die Hilfe,
Thomas