Det är inte så tokigt alls egentligen, men du kan prova med
SELECT f.fTitel, f.finfo, f.fID, COUNT(CASE WHEN i.Org=1 THEN i.ID ELSE NULL END CASE) AS antalTrad, COUNT(i.ID) AS antalInlagg FROM tblForum f LEFT JOIN tblForumInlagg i ON f.fID=i.ForumID WHERE f.fType = 1 GROUP BY f.fTitel, f.finfo, f.fID ORDER BY f.fTitel ASC
...för att slippa objRS8 och objRS9
objRS2 är i princip nödvändig, om man inte gör en helskruvad SQL-fråga (se nedan), men du behöver ingen DISTINCT och ingen while-loop, eftersom du bara plockar ut ett inlägg.
Skruvad fråga (som kanske kan bli långsam om det är många inlägg):
SELECT f.fTitel, f.finfo, f.fID, fi.Rubrik, fi.Datum, fi.FromUserID, fi.ID, fi.ResponseTo, fi.Org, COUNT (
CASE
WHEN i.Org=1
THEN i.ID
ELSE NULL
END CASE
) AS antalTrad, COUNT(i.ID) AS antalInlagg
FROM tblForum f
LEFT JOIN tblForumInlagg i
ON f.fID=i.ForumID
LEFT JOIN
(SELECT ForumID,MAX(ID) AS ID
FROM tblForumInlagg
GROUP BY ForumID
)
mi
ON f.fID=mi.ForumID
LEFT JOIN
(SELECT Rubrik, Datum, FromUserID, ID, ResponseTo, Org
FROM tblForumInlagg
)
fi
ON mi.ID =fi.ID
WHERE f.fType = 1
GROUP BY f.fTitel, f.finfo, f.fID, fi.Rubrik, fi.Datum, fi.FromUserID, fi.ID, fi.ResponseTo, fi.Org
ORDER BY f.fTitel ASC
Har utgått från att du kör MySQL 4.1 eller senare