一致しない行にはゼロの値が必要なので、これはLEFT JOIN
の作業です。 、のように:
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`
t1.key
を数えています 一致した行の場合、最初ので同じになるためです。 テーブル(2番目ではない)-したがって、2番目のテーブルのフィールドではなく、テーブルでグループ化する必要があります。
ヒント :テーブル/列にmysqlの予約語で名前を付けることは避けてください。これにより、誤ってバックティックを忘れてしまった場合に、多くの時間を節約できます。