Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL mengambil catatan terbaru untuk Grup

GROUP BY dimaksudkan untuk digunakan dengan fungsi agregasi, jika tidak maka secara sewenang-wenang memilih satu baris per grup. Solusi Anda (di atas dan dalam jawaban Anda sendiri) berfungsi karena MySQL tampaknya menyimpan baris pertama dari setiap grup, tetapi Anda tidak dijamin bahwa ini akan selalu terjadi.

Anda bisa mendapatkan tanggal komentar terbaru untuk setiap post_id seperti ini.

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

Gunakan untuk memilih komentar terbaru:

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. Kata kunci SEPARATOR tidak berfungsi dengan baik di Formula Hibernate

  2. Seberapa mahal JOIN dalam SQL? Dan/atau, apa trade off antara kinerja dan normalisasi?

  3. Query MySQL Umum Teratas

  4. Bagaimana cara menyimpan array ke mysql?

  5. utf8mb4_unicode_ci vs utf8mb4_bin