Jag har tre tabeller (förenklat):
Jag har tre tabeller (väldigt förenklat):
* forumStructure (forumID, forumTitle)
* forumThreads (forumID, threadID, threadID)
* forumPosts (threadID, postID, time)
Jag försöker få fram alla forumdelar (forumStructure) samt vilken tråd som har den senaste posten i varje forum.
Alla forumdelar är jag inte riktigt med på, men en effektiv lösning för senaste post är att lagra information om senaste inlägg i trådtabellen och senaste tråd i forumtabellen, och sedan uppdatera de värdena när man skriver/raderar inlägg eller trådar.
Ursprungligen inskrivet av totoo du kan säkert köra en typ
LEFT JOIN MAX(id) ON parentId=s.id
(antar att du vet hur joins fungerar, googla annars)
Jo, jag vet. Det är någon form av JOIN jag behöver, så mycket vet jag. Följande har jag kommit fram till, men här är inte forumdelarna (forumStructure) med.
SELECT ft.threadTitle, fp.postID FROM forumThreads ft
LEFT JOIN (SELECT threadID, postID, time FROM forumPosts ORDER BY postID DESC) fp ON fp.threadID = ft.threadID
GROUP BY ft.threadID ORDER BY fp.time