Jag testade denna. Fick ut rätt resultat men tog en evig tid att exekvera:
$strSQL = "SELECT i.MessId, i.Subject, i.Locked, i.IntForumId, i.viktig,
p.AnvId, p.req_Username, count(t2.Thread_MessId) as answers
FROM Inlagg as i
LEFT OUTER JOIN Inlagg as t2
ON ( i.MessId = t2.Thread_MessId )
INNER JOIN Profil p
ON ( i.Inlagg_AnvId = p.AnvId )
WHERE i.Orginal = 1
AND i.IntForumId =" . $fId . "
GROUP BY i.MessId, i.Subject, i.Locked, i.IntForumId, i.viktig, p.AnvId, p.req_Username
ORDER BY i.viktig DESC, i.LastUpdate DESC ";
Den tog ju tom längre tid än en COUNT() inne i loopen.
Nja, jag vet nog inte vad jag menade nu när jag tänker efter.
Varför behöver du en outer join? Borde du inte dela upp inläggstabellen i två tabeller istället? Då kan du lagra antal svar/senast inlägg etc direkt i tabellen. Eftersom det är mest läsning i forum så borde du tjäna på denna dubbellagring.
Tabellstrukturen är inte att göra mycket åt nu, då den är en tidigare använd struktur med mängder av data som ska återanvändas. Forumet ska enbart byggas om till annat språk.
Om jag inte ska använda en outer join, vad ska användas istället?
Kan jag få ut det med en fråga på ett hyffsat effektivt sätt?
264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91