SQL: Problem mit ORDER BY / GROUP BY

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Coq
Mitglied
Beiträge: 10
Registriert: 27.03.2007 19:15

SQL: Problem mit ORDER BY / GROUP BY

Beitrag 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?
Benutzeravatar
Seimon
Mitglied
Beiträge: 893
Registriert: 23.02.2005 18:10
Wohnort: Linz, Österreich

Beitrag 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.
Coq
Mitglied
Beiträge: 10
Registriert: 27.03.2007 19:15

Beitrag von Coq »

funktioniert perfekt, danke vielmals!
Antworten

Zurück zu „Coding & Technik“