Si vous sélectionnez des attributs qui ne sont pas utilisés dans la clause group et qui ne sont pas des agrégats, le résultat n'est pas spécifié. C'est-à-dire vous ne savez pas à partir de quelles lignes les autres attributs sont sélectionnés. (La norme sql n'autorise pas de telles requêtes, mais MySQL est plus souple).
La requête doit alors être écrite, par ex. comme
SELECT post_id, forum_id, topic_id
FROM posts p
WHERE post_time =
(SELECT max(post_time) FROM posts p2
WHERE p2.topic_id = p.topic_id
AND p2.forum_id = p.forum_id)
GROUP BY forum_id, topic_id, post_id
ORDER BY post_time DESC
LIMIT 5;
ou
SELECT post_id, forum_id, topic_id FROM posts
NATURAL JOIN
(SELECT forum_id, topic_id, max(post_time) AS post_time
FROM posts
GROUP BY forum_id, topic_id) p
ORDER BY post_time
LIMIT 5;