2013-01-10 89 views
2

我在Oracle APEX.i想從三個表通過INNER JOIN進行報告。表爲Fallows。內部加入三個表

PATIENT(PAR_ID(PK),Pat_Name,Pat_Gender)

歷史(His_Id(PK),Pat_id(FK),Treated_By)

治療( (Fk),Pat_id(Fk) ,Treat_Type ,收費)

我想顯示上面三個表中提到的報告中的所有列。

謝謝。

+2

這是您所描述的有價值的嘗試......那麼這有什麼問題? – Philipp

+1

...並且你用mysql標記了它... – hims056

+0

你需要三個表中的所有列,並且比你接受具有特定列的答案,並且相應地修改你的問題。 –

回答

16

你應該總是指定列返回,尤其是在表格包含相同的列名稱

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

試試這個

Select * from 
PATIENT inner join HISTORY on par_id=HISTORY.Pat_id 
inner join Treatment on par_id=Treatment.Pat_id 
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 
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