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

MySQL bao gồm 0 hàng khi sử dụng COUNT với GROUP BY

Bạn sẽ phải sử dụng LEFT JOIN thay vì INNER JOIN . Bạn bắt đầu bằng cách chọn tất cả voucher_types và sau đó rời tham gia để tìm số lượng.

SELECT
  voucher_types.id AS voucher_type,
  IFNULL(vouchers_count.vouchers_remaining, 0) AS vouchers_remaining
FROM
  voucher_types
LEFT JOIN
  (
    SELECT
    v.type_id AS voucher_type,
    COUNT(v.id) AS vouchers_remaining
    FROM
    vouchers v
    WHERE
    v.sold = 0
    GROUP BY v.type_id
  ) AS vouchers_count
  ON vouchers_count.voucher_type = voucher_types.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. Tại sao java.sql.DriverManager.getConnection (...) bị treo?

  2. MySQL FULLTEXT không hoạt động

  3. Lưu trữ tên người dùng và mật khẩu trong cơ sở dữ liệu có an toàn không?

  4. Tạo một bảng trong thời gian chạy trong Ruby on Rails

  5. Hiểu việc sử dụng bộ nhớ của MySQL dẫn đến kết quả trong PHP (PDO)