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

MySql :Pesan oleh dan Grup Dengan menggabungkan tidak memberikan catatan terbaru

Bagaimana Anda bisa GROUP BY id_thread ketika tidak ada id_thread kolom di tabel Anda?

SELECT * 
FROM contacts 
WHERE id_receiver = 1 
                                 --- GROUP BY id_thread
                                 --- removed 
ORDER BY created DESC
LIMIT 1                          --- only show one row

Berdasarkan komentar Anda, yang Anda inginkan adalah yang terbaru (diurutkan berdasarkan created ) baris untuk setiap id_thread , yang merupakan kueri yang berbeda dan lebih kompleks. Bahkan ada tag untuk kueri semacam ini, bernama [greatest-n-per-group] .

SELECT c.* 
FROM contacts AS c
  JOIN
    ( SELECT id_thread, MAX(created) AS created 
      FROM contacts 
      WHERE id_receiver = 1  
      GROUP BY id_thread
    ) AS g 
    ON (g.id_thread, g.created) = (c.id_thread, c.created) 
WHERE c.id_receiver = 1  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. menjalankan container docker membutuhkan setidaknya 1 argumen

  2. Masalah dengan pernyataan yang disiapkan

  3. Bagaimana cara menghapus batasan dari tabel MySQL saya?

  4. Bagaimana cara menggabungkan tipe data seperti integer (integer dengan integer) &varchar (varchar dengan varchar) di mysql?

  5. Tentukan apakah kombinasi record banyak-ke-banyak ada