셀프 아우터 조인은 일반 아우터 조인과 좀 다른거같네요. (수정) 0 2 1,361

by 유환 [Oracle 기초] [2020.06.19 02:16:41]


셀프 아우터 조인시 에상과 다르게 결과가 나오네요..

테이블이 서로 다르면   아우터 반대 테이블 로우수는 변하지 않는대

원래 셀프 아우터는 그런가요???


                -- 테이블   
                COMMON_GRP    COMMON_CD
                TEST          109
                TEST          310
                -------------------
                
                  select A.COMMON_GRP , A.COMMON_CD , B.COMMON_GRP , B.COMMON_CD
                    from TTTT A
                       , TTTT B
                  WHERE A.COMMON_GRP = B.COMMON_GRP(+)
                    AND A.COMMON_GRP ='TEST'
                    AND A.COMMON_CD = '109'  -- <--- 여기까지 실행시 2건 
                    AND B.COMMON_CD(+) = '310'--  <--- 여기까지 실행시 1건 , 예상은 2건...
                  
                  ;
                  
                  결과
                  TEST    109    TEST    310

----------------------

음 제가 뭔가 착각하는건가....

에전에는 조인 조건이 맞으면 아우터 테이블에 조건을 줘도(+)  로우 건수는 변하지 않는것으로 알고 있엇는대

아우터 컬럼에 조건을 주면 B 테이블은 나오지 않네요.

셀프조인과 상관이 없이 모두 그러네요.

원래 그런거였나요???;;

by 마농 [2020.06.22 08:34:47]

아우터 조인은 조인에 실패하더라도 기준이 되는 자료는 다 나오는 것입니다.
3번째 조건으로 기준테이블이 1개가 됩니다.
조인되는 자료의 건수가 4번째 조건으로 인해 2개에서 1개로 줄은 것이죠.
3번째 조건까지 수행하면 1*2
4번째 조건까지 수행하면 1*1
기준테이블 건수 1개는 그대로 입니다.


by 유환 [2020.06.30 00:46:40]

감사합니다 ^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입