SELECT c.`name` as catname, c.`safe_name` catsname, c.`id` as catid, f.`name`, f.`safe_name`, f.`id` as forumid, t.`id`, t.`title`, t.`updated`, u.`name` as last_user, t.`date` FROM `kb_categories` c LEFT OUTER JOIN `kb_forums` f ON f.`catid` = c.`id` LEFT OUTER JOIN (`kb_topics` t LEFT OUTER JOIN `kb_users` u ON t.`userid` = u.`id`) ON f.`id` = t.`forumid` AND t.`updated` = (SELECT MAX(t.`updated`) FROM `kb_topics` t WHERE t.`forumid` = f.`id`) ORDER BY c.`posid`, f.`posid` ASC, t.`updated` DESC