Tôi chỉ gặp một chút khó khăn với một số SQL. Tôi không nghĩ mình có thể diễn đạt câu hỏi một cách xuất sắc - vậy hãy để tôi chỉ cho bạn.
Tôi có hai bàn, một người được gọi, một người được gọi là cuộc hẹn. Tôi đang cố gắng trả lại số cuộc hẹn mà một người có (bao gồm cả nếu họ có số 0). Cuộc hẹn bao gồm person_id
và có một person_id
cuộc hẹn. Vì vậy, COUNT(person_id)
là một cách tiếp cận hợp lý.
Truy vấn:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
Sẽ trả về chính xác số cuộc hẹn mà một person_id có. Tuy nhiên, một người có 0 cuộc hẹn không được trả lại (rõ ràng là họ không có trong bảng đó).
Việc chỉnh sửa câu lệnh để lấy person_id từ bảng person cho tôi một cái gì đó như:
SELECT person.person_id, COUNT(appointment.person_id) AS "number_of_appointments"
FROM appointment
JOIN person ON person.person_id = appointment.person_id
GROUP BY person.person_id;
Tuy nhiên, điều này sẽ vẫn chỉ trả về một person_id đã có cuộc hẹn chứ không phải điều tôi muốn, đó là trả về với những người có 0 cuộc hẹn!
Bất kỳ đề nghị xin vui lòng?