Seite 1 von 1

SQL: Problem mit ORDER BY / GROUP BY

Verfasst: 07.09.2007 14:23
von Coq
Hallo zusammen,

habe ein Problem mit einer SQL Abfrage und hoffe, jemand hier kann mir helfen.

Folgendes möchte ich erreichen: Es geht um ein Bilder-Upload Script und ich möchte die 3 neuesten Bilder ausgeben. Allerdings immer nur eines pro Person, d.h. wenn jemand 3 Bilder auf einmal hochlädt, soll nur das neueste ausgegeben werden.

Meine Abfrage dazu:

Code: Alles auswählen

SELECT a.img_id FROM album AS a
LEFT JOIN phpbb_users AS u
ON a.img_user_id = u.user_id
WHERE a.img_approve_lvl = 1
GROUP BY a.img_user_id
ORDER BY a.img_time DESC
LIMIT 3
so wird zwar jeweils nur ein Bild pro Person ausgegeben, aber leider jeweils das älteste, weil die GROUP anweisung ja vor ORDER steht, was auch nicht anders geht.

Weiss jemand Rat?

Verfasst: 08.09.2007 17:19
von Seimon
Versuch mal:

Code: Alles auswählen

SELECT MAX(img_id) AS last_image 
FROM album 
WHERE img_approve_lvl = 1 
GROUP BY img_user_id 
ORDER BY last_image DESC 
LIMIT 3
Deine Bilder sollten fortlaufende id haben, sodaß du nicht nach der Zeit sortieren musst.

Verfasst: 10.09.2007 03:31
von Coq
funktioniert perfekt, danke vielmals!