Предположим, что более высокий идентификатор обозначает «более новые» новости.
Сначала выберите самый высокий идентификатор для категории новостей в подвыборке, затем выберите все данные для этих новостей.
SELECT c.category_name, a.title, a.body
FROM all_news_table a
INNER JOIN category_table c ON (a.category_id = c.id)
WHERE a.id IN (
SELECT max(a1.id) FROM all_news_table a1
GROUP BY a1.category_id)