저번에 오라클 INNER JOIN을 했는데
이번에는 오라클 OUTER JOIN에 대해 알아본다
일단 TEST_TABLE, TEST_TABLE2를 만들었는데
보면 TEST_TABLE에는 5 행이 입력되어 있지만
TEST_TABLE2에는 한 행만 입력되어 있는 것이 보인다
저번에 사용한 오라클 INNER JOIN
EQUI 조인이라고도 하는데
동일한 조건일 때만 출력하게 하니
TEST_TABLE 에는 5 행이 있음에도
출력은 한 행만 되는 것이 보이는데
왜냐?
당연하게도 TEST_TABLE의 NAME과 동일한 행은 TEST_TABLE2 의 행 하나밖에 없기 때문에
한 행만 출력이 되는 것이다
근데 비교하는 쪽 테이블에 값이 없어도 5줄을 출력하고 싶은데..
이럴 때 사용하는 것이 오라클 OUTER JOIN이다
기존 INNER JOIN과 다른 점이라고는
값이 없는 쪽에 (+)를 붙여 주면 되는데
쿼리문을 통해 알아보면
이렇게 단순히 값이 없는 쪽 테이블 조건절에
(+)를 붙여 주니 값이 없음에도 OUTER JOIN이 되어
총 5줄이 출력되는 것이 보인다
이제 간단하게 정리를 해 보면
오라클에서 OUTER JOIN이란
값이 없는 테이블에 (+)를 해 주어
값이 없어도 행이 출력되게 해 주는 것이다
ANSI에서는 LEFT, RIGHT, FULL OUTER 조인이 있는데
오라클에서는 FULL OUTER 조인이 없고
LEFT, RIGHT JOIN만 지원하는데
그래서 그게 뭐냐면 매우 간단하다
LEFT JOIN은 값이 없는 쪽을 오른쪽에 배치하는데
A.NAME = B.NAME(+) 이거라고 생각하면 된다
RIGHT JOIN은 값이 없는 쪽을 왼쪽에 배치하는데
A.NAME(+) = B.NAME 이라고 보면 된다
'IT > Oracle' 카테고리의 다른 글
오라클 NVL, NVL2 알아보기 (0) | 2019.03.25 |
---|---|
ANSI LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 알아보기 (0) | 2019.03.21 |
ANSI INNER JOIN 사용해보기 (0) | 2019.03.20 |
오라클 INNER JOIN 사용하기 (0) | 2019.03.20 |
오라클 Union 알아보기 (0) | 2019.03.18 |
댓글