【问题标题】:Comparing values from two different tables in SQL Plus Oracle比较 SQL Plus Oracle 中两个不同表的值
【发布时间】:2014-05-09 06:39:19
【问题描述】:

我有多个表,其中有一些外键。这是表格;

Doctor
Doctor_id, FirstName, SecondName,etc...

Hospital
Hospital_id, Name...

Job
Job_id
fk Doctor_id
fk Hospital_id

我正在尝试显示在“X”医院工作的医生名单。我将如何运行此查询?

SELECT FirstName, SecondName
FROM Doctor, Job, Hospital
WHERE Hospital.Name = 'HospitalName' AND Job.hospital_id = Hospital.hospital_id;

我不确定该特定查询是否正确,因为它显示了每位医生(不是在“医院名称”中工作的医生。如果正确,我猜外键不正确?

提前致谢。危险品

【问题讨论】:

    标签: oracle oracle11g sqlplus


    【解决方案1】:

    您应该学习使用正确的连接语法。那么这样的错误就不太可能发生了:

    SELECT d.FirstName, d.SecondName
    FROM Doctor d join
         Job j
         on d.Doctor_id = j.Doctor_Id join
         Hospital h
         on j.hospital_id = h.hospital_id
    WHERE h.Name = 'HospitalName';
    

    这还为每一列添加了表别名,因此阅读查询的人知道他们来自哪里。

    【讨论】:

      【解决方案2】:

      您缺少一个连接条件。

      SELECT FirstName, SecondName
      FROM Doctor, Job, Hospital
      WHERE Hospital.Name = 'HospitalName' 
      AND Job.hospital_id = Hospital.hospital_id
      AND job.Doctor_id = Doctor.doctor_id;
      

      【讨论】:

      • 哦,你是救生员!非常感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      相关资源
      最近更新 更多