Я только что немного застрял с некоторым SQL. Я не думаю, что смогу блестяще сформулировать вопрос, поэтому позвольте мне показать вам.
У меня есть две таблицы, одна вызывается, другая назначается на прием. Я пытаюсь вернуть количество назначенных человеку встреч (в том числе, если их ноль). Назначение содержит 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_id из таблицы person дает мне что-то вроде:
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, у которого есть встреча, а не то, что я хочу, что является возвращением с людьми, у которых нет встреч!
Есть предложения, пожалуйста?