본문 바로가기
IT/Oracle

오라클 OUTER JOIN 알아보기

by flatsun 2019. 3. 21.
반응형


저번에 오라클 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

댓글