Da du vil have nul værdier for dine ikke-matchede rækker, er det et arbejde for LEFT JOIN
, som:
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`
Vi tæller t1.key
fordi for matchede rækker vil de være de samme i første tabel (og ikke anden) - derfor bør vi gruppere efter den - og ikke efter felt i anden tabel.
Tip :undgå at navngive dine tabeller/kolonner med mysql reserverede ord. Dette vil spare dig for masser af tid, hvis du ved et uheld glemmer backticks.