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

Kembalikan data dari baris dengan tanggal terbaru dari setiap kandidat_id yang berbeda

Anda harus group by semuanya tidak menggunakan fungsi agregat:

SELECT candidate_id, message, max(created_unix), jobpost_id, staffuserid 
    FROM messages 
       WHERE employer_id='$employerid' AND last='company' 
          GROUP BY candidate_id, message, jobpost_id, staffuserid 

Jika message Anda berbeda per baris dan Anda ingin group by candidate_id , maka Anda tidak boleh menggunakan message . Dalam hal ini, cukup hapus dari daftar pilihan Anda dan Anda tidak akan memerlukannya di group by daftar. Hal yang sama berlaku untuk bidang lain yang tidak Anda gunakan.

Ingat, saat menggunakan fungsi agregat, Anda harus memuat setiap bidang dalam fungsi agregat atau group by . Jika tidak, SQL tidak akan tahu dari baris mana untuk menarik data untuk baris yang dikembalikan.

Pembaruan:

Setelah melihat apa yang Anda cari, ini akan berhasil:

SELECT candidate_id, message, max(created_unix), jobpost_id, staffuserid 
    FROM messages 
       WHERE employer_id='$employerid' AND last='company' AND
       created_unix = (
           SELECT max(subm.created_unix)
           FROM messages subm
           WHERE subm.candidate_id = messages.candidate_id
       )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyebarkan Server Percona ke Cloud Hibrida

  2. Meningkatkan Standar pada Manajemen MySQL, MariaDB, PostgreSQL &MongoDB

  3. Bagaimana Anda mendapatkan banyak hasil dari satu CallableStatement?

  4. Tidak dapat memasukkan array ke dalam database

  5. MySql - Perbarui tabel menggunakan pernyataan pilihan dari tabel yang sama