본문 바로가기
IT/Oracle

ANSI LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 알아보기

by flatsun 2019. 3. 21.
반응형

저번에 ANSI INNER JOIN에 대해서 알아봤는데


INNER JOIN은 동일한 값이 있는 경우만 조인하기 때문에

A 테이블에는 값이 있지만 B 테이블에 값이 없는 경우에는


SELECT 결과를 볼 수가 없다


그럴 때 사용하는 것이 OUTER JOIN인데


OUTER JOIN이란? 값이 없어도 행이 출력되게 하는 것!

LEFT JOIN

RIGHT JOIN

FULL OUTER JOIN이 있는데


차례대로 알아보자



가장 먼저 LEFT OUTER JOIN인데


SELECT 컬럼명

FROM 값이 있는 테이블

LEFT JOIN 값이 없는 테이블

ON 조인 조건


이런 식으로 작성하는데


오라클 LEFT JOIN 같은 경우에는

값이 없는 쪽에 (+)를 붙이다 보니


ANSI LEFT JOIN도 비슷하게

값이 없는쪽이 왼쪽인가?


이런 생각이 들텐데

안타깝게도 반대다


다음으로는 ANSI RIGHT OUTER JOIN을 알아보자



LEFT JOIN과 다른 점은 

LEFT 대신 RIGHT를 쓰고

값이 없는 쪽이 왼쪽에 위치한다는 것 밖에 없다


출력해 값이 없는 테이블인 왼쪽의 TEST_TABLE에 '갑수' 라는 값이

없음에도 값이 출력이 되는 것이 보인다


마지막으로는 FULL OUTER JOIN을 알아보자


FULL OUTER JOIN은 

양 테이블에 값이 없는 경우에도 모두 출력시키는데



LEFT JOIN이나 RIGHT JOIN을 썼던 부분을

FULL OUTER JOIN으로 바꿔주면 된다


출력 시에는 양 테이블에 값이 일치하지 않거나 값이 없는 경우에도

모두 출력시켜 주는 것을 볼 수 있다


마지막으로 ANSI를 사용한

LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN을 정리해 보자면..


LEFT JOIN


SELECT 컬럼명

FROM 값이 있는 테이블

LEFT JOIN 값이 없는 테이블

ON 조인 조건


RIGHT JOIN


SELECT 컬럼명

FROM 값이 없는 테이블

RIGHT JOIN 값이 있는 테이블

ON 조인 조건


FULL OUTER JOIN


SELECT 컬럼명

FROM 테이블

FULL OUTER JOIN 테이블

ON 조인 조건


오라클 JOIN은 값이 없는 쪽에(+)를 붙여서

ANSI OUTER JOIN을 보면 좀 헷갈릴 수 있으니 주의하도록 하자


반응형

'IT > Oracle' 카테고리의 다른 글

오라클 DECODE 알아보기  (0) 2019.03.25
오라클 NVL, NVL2 알아보기  (0) 2019.03.25
오라클 OUTER JOIN 알아보기  (0) 2019.03.21
ANSI INNER JOIN 사용해보기  (0) 2019.03.20
오라클 INNER JOIN 사용하기  (0) 2019.03.20

댓글