Anda ingin gabungan luar untuk ini (dan Anda perlu menggunakan person sebagai tabel "pengemudi")
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;
Alasan mengapa ini berhasil, adalah karena gabungan luar (kiri) akan mengembalikan NULL
untuk orang-orang yang tidak memiliki janji. Fungsi agregat count()
tidak akan menghitung NULL
nilai dan dengan demikian Anda akan mendapatkan nol.
Jika Anda ingin mempelajari lebih lanjut tentang gabungan luar, berikut adalah tutorial yang bagus:http://sqlzoo.net/wiki/Using_Null