Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL pobiera ostatni rekord dla grupy

GROUP BY ma być używany z funkcjami agregacji, w przeciwnym razie arbitralnie wybiera jeden wiersz na grupę. Twoje rozwiązanie (powyżej iw odpowiedzi własnej) działa, ponieważ MySQL wydaje się przechowywać pierwszy wiersz każdej grupy, ale nie masz gwarancji, że tak się stanie zawsze.

Możesz uzyskać datę ostatniego komentarza dla każdego post_id w ten sposób.

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

Użyj go, aby wybrać najnowszy komentarz:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL LIKE vs LOCATE

  2. MySQL DROP wszystkie tabele, ignorując klucze obce

  3. Odpowiednik funkcji SQLServer SCOPE_IDENTITY() w mySQL?

  4. Konwertuj datę w formacie MM/DD/RRRR na datę MySQL

  5. Jak zbudować aplikację kolbową wokół już istniejącej bazy danych?