GROUP BYは、集計関数で使用することを目的としています。それ以外の場合は、グループごとに1つの行を任意に選択します。 MySQLは各グループの最初の行を保持しているように見えるため、ソリューション(上記および自己回答)は機能しますが、これが常に発生する保証はありません。
各post_id
の最新のコメントの日付を取得できます このように。
select post_id, MAX(datetime) as latest from post_comments group by post_id
これを使用して最新のコメントを選択します:
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