2010-12-17 7 views
0

Ich möchte die Elemente mit der Anzahl der Kommentare und das Datum des letzten Kommentars, jedes Element anzeigen.SQL: Elemente mit der Anzahl der Kommentare UND letzten Kommentar Datum auswählen

SELECT item.*, 
    count(comments.itemid) AS commentcount, 
    comments.created AS commentcreated 
FROM table_items AS item 
LEFT JOIN table_comments AS comments ON (comments.itemid = item.id) 
WHERE item.published=1 
GROUP BY item.id 
ORDER BY item.created DESC 

Jetzt ist der Kommentarwert das Datum des ersten Kommentars: Ich möchte den letzten Kommentar. Order by funktioniert nicht auf dem LINKEN JOIN. Wie kann dies erreicht werden?

Antwort

2

Versuchen

SELECT item.*, 
    count(comments.itemid) AS commentcount, 
    max(comments.created) AS commentcreated 
FROM table_items AS item 
LEFT JOIN table_comments AS comments ON (comments.itemid = item.id) 
WHERE item.published=1 
GROUP BY item.id 
ORDER BY item.created DESC 

Sie müssen MySQL sagen, welche der Daten in der Gruppe mit max(), min() oder einer der anderen Aggregatfunktionen zu verwenden.

+0

Ja, vielen Dank! Das funktioniert! Aber was, wenn ich den Titel des letzten Kommentars auswählen möchte? – Bert

+0

Ich denke, das ist eine andere Frage. – Jaydee