我有2张桌子, 表1)医生 - 具有以下属性:
表2)患者 - 属性为
我的问题是如何“列出所有不分配给他或她的患者的医生的身份,号码,名字和姓氏。按顺序列出清单医生的姓氏。
答案 0 :(得分:1)
将LEFT JOIN
与NOT IN
谓词一起使用:
SELECT
d.fname,
d.lname
FROM Doctor AS d
LEFT JOIN patient AS p ON d.id = p.doctor_id
WHERE p.docutor_id IS NULL
ORDER BY d.lname;
或: NOT IN
谓词,但来自NULL
表doctor_id
的{{1}}值并不安全,那是为什么我将patient
谓词添加到NOT NULL
表:
patient
答案 1 :(得分:0)
使用not exists
:
select id, fname, lname
from Doctor d
where not exists (select 1 from Patient where doctorId = d.id)