このための外部結合が必要です(そして、人を「運転」テーブルとして使用する必要があります)
SELECT person.person_id, COUNT(appointment.person_id) AS "number_of_appointments"
FROM person
LEFT JOIN appointment ON person.person_id = appointment.person_id
GROUP BY person.person_id;
これが機能する理由は、外側(左)の結合がNULL
を返すためです。 予約がない人のために。集計関数count()
NULL
はカウントされません 値を指定すると、ゼロになります。
外部結合について詳しく知りたい場合は、次のチュートリアルをご覧ください:http://sqlzoo.net/wiki/Using_Null