Cela devrait fonctionner pour vous :
SELECT `t1`.`id` , COUNT(`t2`.`id`) AS `count`
FROM `t1` LEFT JOIN `t2` ON `t1`.`id` = `t2`.`id`
GROUP BY `t1`.`id`
La jointure gauche garantit que vous avez toutes les lignes de t1, et COUNT(t2
.id
) ne compte que les enregistrements où t2.id n'est pas nul (c'est-à-dire ceux qui existent réellement dans t2)