Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL tổng hợp các hàm với LEFT JOIN

Vì bạn có bộ lọc cho notes trong WHERE mệnh đề JOIN đang hoạt động giống như một INNER JOIN , di chuyển nó vào JOIN điều kiện:

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;

Điều này cũng có thể được thực hiện bằng cách sử dụng truy vấn con, vì vậy bạn áp dụng bộ lọc ghi chú bên trong truy vấn con:

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. Hàm MySQL SQRT () - Trả về Căn bậc hai của một số trong MySQL

  2. Một câu hỏi dateTime khác

  3. Nút Thêm PHP để xem tất cả nội dung của toàn bộ MySQL bản ghi

  4. chém trước mọi vấn đề trích dẫn

  5. PDO:kiểm tra bản ghi đã cập nhật hoặc đã chèn bằng cách sử dụng mysql CHÈN VÀO CẬP NHẬT KHÓA DUPLICATE