Если forum_post
первичный ключ автоинкрементен (должно быть, но мы никогда не узнаем ...), это вернет то, что вам нужно:
SELECT c.forum_cat_id, COUNT(p.fk_forum_cat_id), MAX(p.date_added),
(SELECT p2.post_title FROM forum_post AS p2
WHERE p2.forum_post_id = (SELECT MAX(p3.forum_post_id) FROM forum_post AS p3
WHERE p3.fk_forum_cat_id = p2.fk_forum_cat_id) AND p2.fk_forum_cat_id = c.forum_cat_id)
FROM forum_cat AS c INNER JOIN
forum_post AS p ON p.fk_forum_cat_id = c.forum_cat_id
GROUP BY c.forum_cat_id;
Мне пришлось угадать некоторые имена полей:
forum_cat_id
= forum _cat
первичный ключ forum_post_id
= forum_post
первичный ключ post_title
= заголовок сообщения или начало текста сообщения вforum_post
(зависит от того, что вы хотите показать). - Столбец
COUNT(p.fk_forum_cat_id)
будет содержать количество сообщений в категории
В дополнение к тому, что вы просили, вы получитедата последнего сообщения в категории, так как, я думаю, оно понадобится вам, если это хороший форум;).
Obs: Я не тестировал его, поэтому вам может потребоваться некоторая отладка.Если у вас есть проблемы, дайте мне знать.