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

Fungsi agregat MySQL dengan LEFT JOIN

Karena Anda memiliki filter untuk notes tabel di WHERE klausa JOIN bertindak seperti INNER JOIN , pindahkan ke JOIN kondisi:

SELECT
  jobs.*,
  MAX(notes.`timestamp`) AS complete_date
FROM jobs
LEFT JOIN notes 
  ON (jobs.id=notes.job_id)
  AND (notes.type="complete" OR notes.type IS NULL)
WHERE (jobs.status="complete" OR jobs.status="closed")
GROUP BY jobs.id
ORDER BY complete_date ASC;

Ini juga dapat dilakukan dengan menggunakan subkueri, jadi Anda menerapkan filter catatan di dalam subkueri:

SELECT
  jobs.*,
  n.complete_date
FROM jobs
LEFT JOIN
(
    select job_id, MAX(`timestamp`) AS complete_date
    from notes 
    where (type="complete" OR type IS NULL)
    group by job_id
) n
  ON (jobs.id=n.job_id)
WHERE (jobs.status="complete" OR jobs.status="closed")
ORDER BY complete_date ASC



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails install mysql - Kesalahan saat menginstal mysql2:ERROR:Gagal membuat ekstensi asli permata

  2. UNPIVOT data mysql ke tabel lain

  3. Python, konversi char 4-byte untuk menghindari kesalahan MySQL Nilai string salah:

  4. Cara memasukkan nilai NULL dalam kueri dengan Outer Join dan Group By

  5. gema sesuatu dari database MySQL