内部加入三个表

时间:2013-01-10 09:31:36

标签: sql oracle11g oracle-apex

我在Oracle APEX.i工作。想要通过INNER JOIN从三个表格做出报告。这些表格是Fallows。

  

PATIENT(Par_Id(Pk),Pat_Name,Pat_Gender)

     

历史(His_Id(Pk),Pat_id(Fk),Treated_By)

  

治疗(   Treat_Id,   His_id(FK),Pat_id(FK)   ,Treat_Type   ,收费)

我想显示上面三个表中提到的Report中的所有列。

感谢。

4 个答案:

答案 0 :(得分:21)

您应始终指定要返回的列,尤其是当表包含相同的列名

SELECT p.Par_Id, p.Pat_Name, p.Pat_Gender,
    h.His_Id, h.Treated_By,
    t.Treat_Id, t.Treat_Type, t.Charges
FROM Patient p 
INNER JOIN History h 
    ON p.PAR_ID = h.PAT_ID
INNER JOIN Treatment t
    ON h.HIS_ID = t.HIS_ID AND p.PAR_ID = h.PAT_ID

答案 1 :(得分:3)

这应该可以解决问题

SELECT * FROM Patient p 
    INNER JOIN History h 
        ON p.PAR_ID = h.PAT_ID
    INNER JOIN Treatment t
        ON h.HIS_ID = t.HIS_ID AND p.PAR_ID = h.PAT_ID

答案 2 :(得分:1)

试试这个

Select * from 
PATIENT  inner join HISTORY  on par_id=HISTORY.Pat_id
inner join Treatment  on par_id=Treatment.Pat_id

答案 3 :(得分:1)

在mysql中太简单了

SELECT 
    * 
FROM PATIENT as p
LEFT JOIN HISTORY as h ON h.Pat_id = p.Pat_Id
LEFT JOIN Treatment as t ON t.His_id = h.His_Id