1 up | 2 up | 3 up | 4 up | 5 up | 6 up | 7 up |
^^^ Additional posts ^^^
zorg.ch
#39792 by @ 27.07.2004 15:14 - nach oben -
nicht? group by sollte das doch bewerkstelligen?
zorg.ch
#39800 by @ 27.07.2004 15:18 - nach oben -
tut er aber nicht, habs grad angeschaut....
zorg.ch
#39802 by @ 27.07.2004 15:20 - nach oben -
group by kann nicht zwei datensÀtze verhÀngen. du könntest ja auch SELECT *, min(date), max(date), count(date) machen. welcher sollte er dann nehmen?
zorg.ch
#39805 by @ 27.07.2004 15:24 - nach oben -
SELECT *, min(date), max(date), count(date)
bringt nichts, aber das:

SELECT thread_id, max( lastpost ) AS lastpost
FROM `comments`
GROUP BY thread_id
ORDER BY lastpost DESC LIMIT 0 , 30

(* in ner group by drin zu haben ist glaub uncool)
zorg.ch
#39807 by @ 27.07.2004 15:28 - nach oben -
* in ner group gibt dir einfach irgend ein datensatz aus der group.

deine variante tut, weil die thread_id ja in jedem datensatz der group gleich ist. aber jetzt hast du noch keine infos welches der letzte post ist.
zorg.ch
#39810 by @ 27.07.2004 15:39 - nach oben -
Jo klar, so mĂŒsste mans dann glaub machen: (statt lastpostdate natĂŒrlich mit lastpostid)

SELECT comments.board, comments.thread_id, max( comments.lastpost ) AS lastpostdate, lastpost.id AS lastpostid, lastpost.text

FROM `comments`
LEFT JOIN comments AS lastpost ON ( lastpost.date = comments.lastpost )
GROUP BY comments.thread_id
ORDER BY lastpostdate DESC
LIMIT 0 , 30