私は2つのテーブルを持っています、テーブル1)ドクター - の属性を持つ:
- id(主キー)
- fname
- 名前
- 電話
- ブザー
表 2) 患者 - の属性を持つ
- id(主キー)
- doctor$id(ドクターテーブルIDからの外部キー)
- fname
- 名前
- 街
- 街
- 州
- ジップ
- 電話
そして、私の質問は、「患者が割り当てられていないすべての医師のID、番号、姓、名をリストする方法です。リストを医師の姓の順に並べます.
私は2つのテーブルを持っています、テーブル1)ドクター - の属性を持つ:
表 2) 患者 - の属性を持つ
そして、私の質問は、「患者が割り当てられていないすべての医師のID、番号、姓、名をリストする方法です。リストを医師の姓の順に並べます.
述語とともに使用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;
または:述語ですが、 inテーブルからNOT IN
の値では安全ではありません。そのため、テーブルに述語を追加しました。NULL
doctor_id
patient
NOT NULL
patient
SELECT
d.fname,
d.lname
FROM Doctor AS d
WHERE id NOT IN(SELECT doctor_id
FROM patient
WHERE docutor_id IS NOT NULL)
ORDER BY d.lname;
使用not exists
:
select id, fname, lname
from Doctor d
where not exists (select 1 from Patient where doctorId = d.id)