Bạn muốn một liên kết bên ngoài cho việc này (và bạn cần sử dụng người làm bảng "lái xe")
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;
Lý do tại sao điều này đang hoạt động, là kết nối bên ngoài (bên trái) sẽ trả về NULL
cho những người không có cuộc hẹn. Hàm tổng hợp count()
sẽ không tính NULL
và do đó bạn sẽ nhận được số không.
Nếu bạn muốn tìm hiểu thêm về các phép nối bên ngoài, đây là một hướng dẫn hay:http://sqlzoo.net/wiki/Using_Null