[MySQL] Unique Datensatz sortiert nach Zeit

emptynick

Erfahrenes Mitglied
Hallo,

ich bin momentan an einem Forum am basteln, wessen Datenbank-Struktur wie folgt aussieht:

threadid = ID des Thread
zeit = Zeitstempel
parentid = Eltern-id (Wenn es nur ein Post ist, kommt hierrein zusätzlich die Thread-ID).

Nun werden in dieser Tabelle sowohl Threads, als auch Posts gespeichert.
Jetzt möchte ich die neusten 5 Einträge auslesen.
(SELECT * FROM xyz ORDER BY zeit DESC LIMIT 5)
Soweit kein Problem.
Doch sollen die jeweiligen Einträge nicht doppelt vorkommen.
Also muss nun noch darauf geachtet werden, dass Spalte "threadid" nicht doppelt vorkommt.
Also etwas wie:
"SELECT DISTICT threadid FROM xyz ORDER BY zeit DESC LIMIT 5".
Doch da kommt dass Problem, dass nun zwar Datensätze ausgespuckt werden, aber irgendwelche, ein paar Neue, aber auch ein paar Alte.
GROUP BY funktioniert auch nicht so wirklich.
Wahrscheinlich ist an der Syntax von MySQL einfach was an mir vorbeigegangen.
So genau kenne ich mich da auch nicht aus, da mir die Standart-Abfrage mit ein wenig WHERE LIKE etc. schon reicht.

Weiß da jemand Rat?
Vielen Dank im Vorraus

emptynick
 
SELECT * FROM xyz GROUP BY threadid ORDER BY zeit DESC LIMIT 5

Das sollte doch en....
Gruppierung nach threadid um keine doppelten zu haben, dennoch aber nach Zeit absteigend sortieren.
 
Wie genau sieht die Query aus, es können nur doppelte werte rauskommen wenn in der Group By Anweisung mehr als nur threadid gruppiert wird...
 
Um genau zu sein, genau wie deiner, nur mit der entsprechenden Tabelle ;)

SELECT * FROM forumbeitraege GROUP BY threadid ORDER BY zeit DESC LIMIT 5
 

Neue Beiträge

Zurück