oGGoMedlem sedan apr. 2003120 inlägg Tjena!
Håller på med ett forum och vill nu pumpa ut trådarna i den ordning någon har svarat i dem. Jag har en tabell för trådar och en för posts.
Databasdesignen är bifogad i de två filerna.
Idag har jag följande SQL för att visa trådarna men den fungerar ju inte som jag vill ha det.
Jag får ut trådarna med sticky högst upp men när jag skall sortera på "senaste datum" från Forumposts.postdate-kolumnen vet jag inte längre hur jag skall gå till väga.. snälla hjälp mig :)
SELECT
Forumthreads.*, Count(Forumposts.Postid) AS Antalsvar
FROM Forumthreads
INNER JOIN Forumposts
ON Forumthreads.threadid = Forumposts.Postthreadid
GROUP BY Forumthreads.threadid
ORDER BY Forumthreads.threadsticky DESC
oGGoMedlem sedan apr. 2003120 inlägg okej, kom så långt att jag faktiskt fick in postdate som en kolumn med AS.
Problemet är bara att denna returnerar den första träffen och inte den sista som jag vill ha.
(understrukna och fetstilta är det editerade)
SELECT
Forumthreads.*, [U][B]Forumposts.Postdate AS Postdate,[/B][/U] Count(Forumposts.Postid) AS Antalsvar
FROM Forumthreads
INNER JOIN Forumposts
ON Forumthreads.threadid = Forumposts.Postthreadid
GROUP BY Forumthreads.threadid
ORDER BY Forumthreads.Threadsticky DESC, Postdate DESC
oGGoMedlem sedan apr. 2003120 inlägg Jag löste det själv till slut efter mycket om och men. Såklart var det enklare än vad jag trott det skall vara.
SELECT
Forumthreads.*,
(SELECT Postdate FROM Forumposts WHERE Forumthreads.Threadid = Forumposts.Postthreadid ORDER BY Postdate DESC LIMIT 0,1) AS Postdate,
Count(Forumposts.Postid) AS Antalsvar
FROM Forumthreads
INNER JOIN Forumposts
ON Forumthreads.threadid = Forumposts.Postthreadid
GROUP BY Forumthreads.threadid
ORDER BY Forumthreads.Threadsticky DESC, Postdate DESC