SELECT f.id, f.minclassread, f.name, f.description, f.topiccount, f.postcount, (SELECT (COALESCE((SELECT lastpostread FROM readposts WHERE userid = 1132 AND topicid = t.id LIMIT 1), 0) < t.lastpost) AS t_newposts FROM topics t WHERE t.forumid = f.id ORDER BY t_newposts DESC LIMIT 1 ) AS newposts, lp.topicid, t.subject, t.lastpost, lp.added, lp.userid, u.username FROM forums f LEFT OUTER JOIN posts lp ON lp.id = (SELECT lastpost FROM topics WHERE forumid=f.id ORDER BY lastpost DESC LIMIT 1) LEFT OUTER JOIN topics t ON t.id = lp.topicid LEFT OUTER JOIN users u ON u.id = lp.userid ORDER BY f.name