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

Pesan dalam grup menurut?

SELECT  c.*, p.*
FROM    clients AS c
JOIN    programs AS p
ON      p.id = 
        (
        SELECT  pi.id
        FROM    programs AS pi
        WHERE   pi.client_id = c.id
        ORDER BY
                pi.close_date=0 DESC, pi.close_date DESC
        LIMIT 1
        )

Terima kasih harus pergi ke @Quassnoi . Lihat jawabannya dalam pertanyaan serupa (tetapi lebih rumit):mysql-group-by-to-display-latest-result

Jika Anda memperbarui programs tabel dan atur close_date untuk semua catatan yang nilainya nol hingga close_date='9999-12-31' , lalu ORDER BY akan lebih sederhana (dan seluruh kueri lebih cepat dengan indeks yang tepat):

        ORDER BY
                pi.close_date DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat terowongan ssh di Ruby dan kemudian terhubung ke server mysql di host jarak jauh

  2. MySQL hanya mengembalikan satu baris

  3. Bagaimana Anda mengubah tingkat isolasi SQL dari Python menggunakan MySQLdb?

  4. Dapatkan daftar tanggal di antara dua tanggal

  5. Menyimpan nilai Lat Lng di MySQL menggunakan Spatial Point Type