У меня есть 3 стола Доктор, пациент и посещение.Основная помощь по SQL-запросам (не существует)
Стол врача имеет доктор, имя и город.
Стол пациента имеет идентификатор пациента, имя и город.
Посетите таблицу DoctorID, PatientID, NumVisits.
Я пытаюсь найти всех врачей, которые не были посещены пациентом определенного города (скажем, Нью-Йорк).
Я очень новичок в написании запросов, и я не могу заставить его работать.
Мой КОД:
SELECT DoctorId,
Doctor.Name
FROM Visit
JOIN Doctor using(DoctorID)
JOIN Patient using(PatientID)
WHERE NOT EXISTS
(SELECT DoctorId,
Doctor.Name
FROM Visit
JOIN Doctor using(DoctorID)
JOIN Patient using(PatientID)
WHERE Patient.City = 'New York');
Может кто-то пожалуйста, объясните мне, что я делаю не так? Может быть, весь мой подход неверен.
Вы, безусловно, не нужно 6 запросов для достижения этой цели! Это поможет сделать шаг назад и подумать об этом с другой точки зрения. Хорошее эмпирическое правило заключается в том, что вы никогда не должны выполнять больше объединений, чем в вашем запросе есть таблицы! – DanHabib