6

我在 Oracle APEX 工作。我想通过 .The INNER JOINTables 从三个表中生成报告。这些表是 Fallows。

患者(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、Charges)

我想显示上述三个表格中提到的报告中的所有列。

谢谢。

4

4 回答 4

25

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

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
于 2013-01-10T09:41:05.420 回答
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
于 2013-01-10T09:35:37.213 回答
1

试试这个

Select * from 
PATIENT  inner join HISTORY  on par_id=HISTORY.Pat_id
inner join Treatment  on par_id=Treatment.Pat_id
于 2013-01-10T09:35:08.137 回答
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
于 2013-01-10T09:36:38.480 回答