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

nối hai bảng cùng với số bản ghi từ bảng thứ hai dựa trên điều kiện

Sử dụng LEFT JOIN thay vì INNER JOIN :

SELECT c.id, c.name, c.unit, COUNT(p.category_id) as active_count 
FROM `categories` c 
LEFT JOIN `products` p
    ON c.id = p.category_id AND p.is_active = 1 
GROUP BY c.id;

Điều quan trọng nữa là di chuyển vị từ p.is_active = 1 từ WHERE mệnh đề ON , để tất cả bản ghi của categories bảng được trả về bởi truy vấn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết hợp ANSI 1992 JOIN và COMMA trong một truy vấn

  2. MySQL COUNT () và null

  3. Nhận các tham số dễ bị tấn công bởi SQL Injection - PHP

  4. Ràng buộc khóa ngoại không thành công

  5. Xóa nhiều hàng khỏi bảng bằng id trong Mysql