2013-01-10 4 views
2

저는 Oracle APEX.i에서 근무하고 있습니다.을 통해 세 테이블의 보고서를 만들고 싶습니다.이 테이블은 Fallows로되어 있습니다.내부 세 테이블 조인

환자 (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 , 요금

위의 세 테이블에 언급 된 보고서의 모든 열을 표시하려고합니다.

감사합니다.

+2

당신이 묘사 한 가치있는 노력은 ... 그래서 무엇이 문제입니까? – Philipp

+1

... mysql으로 태그를 붙였습니다 ... – hims056

+0

세 테이블의 모든 열이 필요하며 특정 열을 갖는 대답을 수락 한 것보다 질문을 올바르게 수정하십시오. –

답변

16

MySQL은 너무 간단하다 트릭

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

이 특히로서, 당신은 항상 열이 반환 지정해야

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 
3

시도 테이블에는 동일한 열 이름이 포함됩니다.

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