3개이상 테이블 FULL OTER JOIN 방법 0 1 2,674

by 오라클홀릭 [2012.06.26 16:57:44]


3개이상의 테이블을 하나도 빠짐없이 모두 출력하고싶습니다.
다음과 같이 하면 된다고 생각했는데 잘 안됩니다.

SELECT
   t1.pk1, t1.pk2, t2.pk1, t2.pk2, t3.pk1, t3.pk2
FROM
    t001 t1
FULL OUTER JOIN
    t002 t2
ON   t1.pk1 = t2.pk1
AND  t1.pk2 = t2.pk2
FULL OUTER JOIN
    t003 t3
ON   t2.pk1 = t3.pk1
AND  t2.pk2 = t3.pk2
;

읽어주셔서 감사합니다.

by 마농 [2012.06.26 17:36:09]
t1, t2 가 연결된 상태
또는 t2에만 키가 있는 경우에는 t3 와 연결이 되겠지만
t1에만 데이터가 있는 경우엔 t3와 연결이 안되겠지요.
마지막 ON 절에서 t1 과의 관계도 명시해 줘야 하겠지요.
-- ON (t3.pk1, t3.pk2) IN ( (t1.pk1, t1.pk2), (t2.pk1, t2.pk2) )
-- ON (t3.pk1, t3.pk2) = ANY ( (t1.pk1, t1.pk2), (t2.pk1, t2.pk2) )
-- ON NVL(t1.pk1, t2.pk1) = t3.pk1 AND NVL(t1.pk2, t2.pk2) = t3.pk2
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입