본문 바로가기
Programming/Oracle

[Oracle] 오라클 조인(JOIN) 사용법 정리(INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN)

by hyunipad 2021. 7. 26.
반응형

JOIN 이란?

JOIN은 SELECT를 통해 테이블에서 데이터를 가져올 때, 두 개 이상의 테이블에서 조인 조건을 만족하는 행을 반환하는 구문입니다. 대게 필요한 데이터가 두 개 이상의 테이블에 나눠져 있을 때 조인을 통하여 데이터를 합쳐서 가져올 때 사용합니다.

JOIN의 사용 예시

INNER JOIN

SELECT [테이블명1.컬럼1], [테이블명1.컬럼2], [테이블명2.컬럼1] .... FROM [테이블명1] JOIN [테이블명2] ON [테이블명1].[컬럼] = [테이블명2].[컬럼] WERER [조건1]

테이블 COUNTRY와 테이블 CITY를 JOIN 하여 ON 조건절에 따라 COUNTRY.Code와 CITY.CountryCode가 일치하는 데이터들을 합쳐서 가져옵니다.

INNER JOIN은 아래와 같이 WHERE 조건절만으로도 JOIN하여 데이터를 가져올 수 있습니다.

SELECT [테이블명1.컬럼1], [테이블명1.컬럼2], [테이블명2.컬럼1] .... FROM [테이블명1], [테이블명2] WHERE [테이블명1].[컬럼] = [테이블명2].[컬럼]

LEFT JOIN

SELECT [테이블명1.컬럼1], [테이블명1.컬럼2], [테이블명2.컬럼1] .... FROM [테이블명1] LEFT JOIN [테이블명2] ON [테이블명1].[컬럼] = [테이블명2].[컬럼] WERER [조건1]

INNER JOIN에서는 ON조건절에 일치하지 않는 데이터거나 존재하지 않는 데이터들은 아예 데이터를 가져오지 않습니다. 반면 LEFT JOIN은 일단 왼쪽 테이블의 데이터를 모두 가져온 뒤 ON조건절에 일치하지 않거나 존재하지 않는 데이터들을 모두 NULL값으로 처리합니다.

예제 테이블 1 - TABLE1

NAME SEX PID
Mr.KIM MAN 1
Mr.KWON WOMAN 2
Mr.LEE MAN 3

예제 테이블 2 - TABLE2

PID PHONE
1 010-1234-1234
2 010-1111-2222
4 010-1234-5678
SELECT T1.NAME, T2.PHONE FROM TABLE1 T1 LEFT JOIN T2 ON T1.PID = T2.PID

T1.NAME T2.PHONE
Mr.KIM 010-1234-1234
Mr.KWON 010-1111-2222
Mr.LEE NULL

RIGHT JOIN

SELECT [테이블명1.컬럼1], [테이블명1.컬럼2], [테이블명2.컬럼1] .... FROM [테이블명1] RIGHT JOIN [테이블명2] ON [테이블명1].[컬럼] = [테이블명2].[컬럼] WERER [조건1]

LEFT JOIN은 일단 오른쪽 테이블의 데이터를 모두 가져온 뒤 ON조건절에 일치하지 않거나 존재하지 않는 데이터들을 모두 NULL값으로 처리합니다.

SELECT T1.NAME, T2.PHONE FROM TABLE1 T1 LEFT JOIN T2 ON T1.PID = T2.PID

T1.NAME T2.PHONE
Mr.KIM 010-1234-1234
Mr.KWON 010-1111-2222
NULL 010-1234-5678

FULL JOIN

FULL JOIN은 양쪽 모두의 데이터를 가져온 뒤 ON조건절에 일치하지 않거나 존재하지 않는 데이터들을 모두 NULL값으로 처리합니다. FULL JOIN은 사용할 일이 잘 없으며 지원하지 않는 경우도 있습니다.





반응형

댓글