PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ordnung in GROUP BY


urs_kemmann
14.03.2008, 00:19:12
Hallo zusammen,

bitte schaut euch zunächst die den relevanten Teil des Datenbank-Layouts unter www.urskemmann.de/uts/group_by.bmp an (die Tabell users dürfte keine Relevanz haben, daher ist sie nicht in der Grafik enthalten).

Die Tabelle messages (oben) wird mehrere threads enthalten, also z.B. noch mehrere messages im thread 389, 390 usw. Pro thread möchte ich die LETZTE geschriebene message haben, im Falle des gezeigten Ausschnittes also 394.

Mit folgendem statement bekomme ich allerdings die Nachricht mit messageid 390 und nicht 394:

SELECT messages.messageid, profile AS sender, date, subject, message, threadid FROM messages LEFT JOIN (users) on (users.userid=fromid) WHERE messages.userid=35 AND messages.messageid IN (SELECT messageid FROM user2message WHERE user2message.userid=35) GROUP BY messages.threadid;

Wie komme ich pro thread / Gruppe an die Nachricht mit der höchsten Message id. Habe einiges ausprobiert, wie z.B. noch ein ORDER BY messages.messageid anzuhängen, oder mit der max-Funktion zu arbeit, aber nichts hat mich zum erwünschten Ergebnis gebracht.

Kann mir jemand helfen?

Vielen Dank,

Urs

Heinrich
15.03.2008, 23:17:09
wie hast du das denn mit "MAX(messageid) as irgendwas" versucht? Zeig mal....