Database

[DB / SQL] DB Join 조인 (left join / right join / inner join / outer join)

HSRyuuu 2024. 2. 22. 15:13

조인 (Join)


조인(join)은 하나의 쿼리로 두 개 이상의 테이블을 묶어서 불러오는 것을 말한다.

Join은 크게 inner, left, right, outer join으로 나뉜다.

 

INNER JOIN

두 개의 테이블 간의 교집합을 나타낸다.

inner join

A 테이블과 B 테이블에서 조건을 만족하는 row만 조회한다.

SELECT * FROM TableA A
INNER JOIN TableB B ON
A.key = B.key

 


LEFT OUTER JOIN

왼쪽 테이블 A를 기준으로 오른쪽 테이블 B의 일치하는 부분의 레코드와 함께 출력된다.

만약 테이블 B에 일치하는 항목이 없으면 해당 값은 null로 출력된다.

left outer join

A 테이블의 데이터가 모두 출력되지만,

조건에 만족하는 경우 B 테이블의 데이터도 출력되고,

조건에 만족하지 않는 경우 B 테이블 부분은 null로 출력된다.

SELECT * FROM TableA A
LEFT JOIN TableB B ON
A.key = B.key

 

LEFT JOIN (차집합)

A - B

테이블 B의 데이터가 존재하지 않는 테이블 A의 데이터를 모두 불러온다.

SELECT A.* FROM TableA A
LEFT JOIN TableB B ON A.key = B.key
WHERE B.KEY IS NULL;

RIGHT OUTER JOIN

오른쪽 테이블 B를 기준으로 왼쪽 테이블 A의 일치하는 부분의 레코드와 함께 출력된다.

만약 테이블 A에 일치하는 항목이 없으면 해당 값은 null로 출력된다.

right outer join

B 테이블의 데이터가 모두 출력되지만,

조건에 만족하는 경우 A 테이블의 데이터도 출력되고,

조건에 만족하지 않는 경우 A 테이블 부분은 null로 출력된다.

SELECT * FROM TableA A
RIGHT JOIN TableB B ON
A.key = B.key

 

RIGHT JOIN (차집합)

B - A

A 테이블의 데이터가 존재하지 않는 B 테이블의 데이터를 모두 불러온다.

SELECT B.* FROM TableA A
RIGHT JOIN TableB B ON A.key = B.key 
WHERE A.key IS NULL;

FULL OUTER JOIN

왼쪽 테이블과 오른쪽 테이블의 데이터가 모두 출력된다.

각각 조건에 만족하지 않는 부분은 null로 반환되고, 중복은 제외된다.

full outer join

SELECT * FROM TableA A
FULL OUTER JOIN TableB B ON
A.key = B.key
반응형