Karena Anda menginginkan nilai nol untuk baris yang tidak cocok, ini berfungsi untuk LEFT JOIN
, seperti:
SELECT
t1.*,
IF(t2.`key` IS NULL, 0, COUNT(t1.`key`)) AS t2_row_count
FROM
t1
LEFT JOIN t2
ON t1.id=t2.id
AND
t1.category=t2.category
GROUP BY
t1.`key`
Kami menghitung t1.key
karena untuk baris yang cocok mereka akan sama di pertama tabel (dan bukan detik) - dengan demikian, kita harus mengelompokkannya - dan bukan berdasarkan kolom di tabel kedua.
Kiat :hindari memberi nama tabel/kolom Anda dengan kata-kata yang dicadangkan mysql. Ini akan menghemat banyak waktu jika Anda tidak sengaja melupakan backtick.