나는 약간의 SQL에 약간 붙어 있습니다. 질문을 훌륭하게 표현할 수 없을 것 같으니 보여 드리겠습니다.
두 개의 테이블이 있는데, 하나는 사람, 하나는 약속입니다. 한 사람이 가진 약속 수를 반환하려고합니다 (0이있는 경우 포함). 약속은을 포함 person_id
하고 있습니다 person_id
당 약속. 따라서 COUNT(person_id)
합리적인 접근 방식입니다.
쿼리 :
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
person_id가 가진 약속 수를 올바르게 반환합니다. 그러나 약속이 0 인 사람은 반환되지 않습니다 (분명히 해당 테이블에 없음).
person 테이블에서 person_id를 가져 오도록 문을 조정하면 다음과 같은 결과를 얻을 수 있습니다.
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;
그러나 이것은 여전히 약속이있는 person_id 만 반환하고 내가 원하는 것이 아닌 약속이 0 인 사람과의 반환입니다!
어떤 제안을 부탁드립니다.