sql >> Databasteknik >  >> RDS >> Mysql

MySQL hämta senaste rekordet för Group

GROUP BY är avsedd att användas med aggregeringsfunktioner, annars väljer den godtyckligt en rad per grupp. Din lösning (ovanför och i ditt självsvar) fungerar eftersom MySQL verkar behålla den första raden i varje grupp, men du är inte garanterad att detta alltid kommer att hända.

Du kan få datumet för den senaste kommentaren för varje post_id så här.

select post_id, MAX(datetime) as latest from post_comments group by post_id

Använd den för att välja den senaste kommentaren:

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. MySQL uppdatera uttalande för att lagra ranking positioner

  2. Säkerhetskopiera/återställ en dockariserad PostgreSQL-databas

  3. Tillägget mysqli saknas, phpmyadmin fungerar inte

  4. Databastips för nybörjare