yo,
Zwei andere Verbindungsglieder wären auch denkbar:
f.last_post_id <=> last_post_id (ID des letzten Posts)
f.last_post <=> last_post (Unix-Zeit des letzten Beitrags)
last_post und last_post_id scheinen zwei selbstreferenzen auf die eigene tabelle forum2_topic zu sein. ich vermute mal, da stehen die daten drinne, die dann auch als link auf der startseite angezeigt werden. aber dann sollte auch eine entsprechende abfrage auf der startseite sein, die diese informationen ausliesst, kannst du so eine finden ? insofern bin ich mir nicht ganz sicher, ob wir an der richtigen abfrage herumbasteln.
aber schauen wir mal und ergänzen die abfrage. wichtig dabei ist, wenn wir eine neue tabelle hinzufügen, dann kann sich auch die anzahl der ergebnis-datensätze verändern. oder mit anderen worten, ein forum hat meistens mehrere topics. das könnte eventuell zu einem problem führen, dass man beachten muss.
das erste was wir machen, wir fügen die weitere tabelle einfach in die abfrage mit ein und zwar als OUTER JOIN, kann ja sein, dass das forum noch gar keine beiträge hat.
SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster, question
FROM forum2_categories AS c
INNER JOIN forum2_forums AS f ON c.id=f.cat_id
LEFT JOIN forum2_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=1)
LEFT JOIN forum2_topics ON t (t.forum_id = f.id)
WHERE fp.read_forum IS NULL OR fp.read_forum=1
ORDER BY c.disp_position, c.id, f.disp_position
wie gesagt vermute ich, dass du bei dieser abfrage wesentlich mehr datensätze zurück bekommst. insofern kannst du auch folgendes probieren.
SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster, question
FROM forum2_categories AS c
INNER JOIN forum2_forums AS f ON c.id=f.cat_id
LEFT JOIN forum2_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=1)
LEFT JOIN forum2_topics ON t (t.last_post_id = f.id)
WHERE fp.read_forum IS NULL OR fp.read_forum=1
ORDER BY c.disp_position, c.id, f.disp_position
oder eine zweite abfrage einbauen.
SELECT last_post, last_post_id, last_poster, question
FROM forum2_topics
schau mal, ob du damit was anfangen kannst.
Ilja