-3

私は2つのテーブルを持っています、テーブル1)ドクター - の属性を持つ:

  • id(主キー)
  • fname
  • 名前
  • 電話
  • ブザー

表 2) 患者 - の属性を持つ

  • id(主キー)
  • doctor$id(ドクターテーブルIDからの外部キー)
  • fname
  • 名前
  • ジップ
  • 電話

そして、私の質問は、「患者が割り当てられていないすべての医師のID、番号、姓、名をリストする方法です。リストを医師の姓の順に並べます.

4

2 に答える 2

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;

または:述語ですが、 inテーブルからNOT INの値では安全ではありません。そのため、テーブルに述語を追加しました。NULLdoctor_idpatientNOT NULLpatient

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;
于 2013-04-08T07:05:26.367 に答える
0

使用not exists:

 select id, fname, lname 
 from Doctor d 
 where not exists (select 1 from Patient where doctorId = d.id)
于 2013-04-08T07:08:55.267 に答える