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

MySQL menyertakan nol baris saat menggunakan COUNT dengan GROUP BY

Anda harus menggunakan LEFT JOIN alih-alih INNER JOIN . Anda mulai dengan memilih semua voucher_types dan kemudian pergi bergabung untuk menemukan hitungannya.

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. Bergabunglah dengan beberapa tabel dengan nama kolom yang sama

  2. Memfilter Masukan Pengguna

  3. PHP mengatakan Tidak Ada Database yang dipilih bahkan setelah menggunakan mysqli_select_db()

  4. Laravel Kolom Tidak Dikenal 'updated_at'

  5. LINQ to Entities tidak mengenali metode 'System.String ToString()' metode, dan metode ini tidak dapat diterjemahkan ke dalam ekspresi toko