GROUP BY को समेकित कार्यों के साथ उपयोग करने का इरादा है, अन्यथा यह मनमाने ढंग से प्रति समूह एक पंक्ति का चयन करता है। आपका समाधान (ऊपर और आपके स्व-उत्तर में) काम करता है क्योंकि ऐसा लगता है कि 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