外键显示NOT

时间:2013-04-08 07:03:50

标签: sql

我有2张桌子, 表1)医生 - 具有以下属性:

  • id(主键)
  • FNAME
  • L-NAME
  • 电话
  • 蜂鸣器

表2)患者 - 属性为

  • id(主键)
  • 医生$ id(来自医生表id的外键)
  • FNAME
  • L-NAME
  • 城市
  • 状态
  • 拉链
  • 电话

我的问题是如何“列出所有分配给他或她的患者的医生的身份,号码,名字和姓氏。按顺序列出清单医生的姓氏。

2 个答案:

答案 0 :(得分:1)

LEFT JOINNOT 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谓词,但来自NULLdoctor_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)