GROUP BY er beregnet til at blive brugt med aggregeringsfunktioner, ellers vælger den vilkårligt en række pr. gruppe. Din løsning (ovenfor og i dit selvsvar) virker, fordi MySQL ser ud til at beholde den første række i hver gruppe, men du er ikke garanteret, at dette altid vil ske.
Du kan få datoen for den seneste kommentar for hver post_id
sådan her.
select post_id, MAX(datetime) as latest from post_comments group by post_id
Brug den til at vælge den seneste kommentar:
SELECT t1.* FROM post_comments AS t1
JOIN (
SELECT post_id, MAX(datetime) AS latest FROM post_comments GROUP BY post_id
) AS t2
ON t1.post_id = t2.post_id AND t1.datetime = t2.latest