webForumDet fria alternativet

ORDER BY problem..

2 svar · 355 visningar · startad av oGGo

oGGoMedlem sedan apr. 2003120 inlägg
#1

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
forumthreads.gifforumposts.gif
oGGoMedlem sedan apr. 2003120 inlägg
#2

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
#3

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
132 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)