6

私は Oracle APEX で作業しています。3 つのテーブルからレポートを作成したいと考えていINNER JOINます。テーブルは Fallows です。

PATIENT (Par_Id(Pk),Pat_Name,Pat_Gender)

HISTORY (His_Id(Pk),Pat_id(Fk),Treated_By)

治療 ( Treat_Id、His_id(Fk)、Pat_id(Fk) 、Treat_Type 、Charges)

上記の 3 つのテーブルに記載されているレポートのすべての列を表示したいと考えています。

ありがとう。

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 に答える