sql >> Database teknologi >  >> RDS >> Mysql

MySQL hente seneste rekord for Group

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


  1. Hvordan rydder man ODP.NET-forbindelsespuljen ved forbindelsesfejl?

  2. sql gruppe efter versus distinkt

  3. Sådan får du den sidste række i et Oracle en tabel

  4. Beregn decil fra seneste i MySQL