आपको एक LEFT JOIN
का उपयोग करना होगा INNER JOIN
. के बजाय . आप सभी voucher_types . का चयन करके प्रारंभ करते हैं और फिर गिनती खोजने के लिए शामिल हों छोड़ दिया।
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