SQL JOIN 에 대해 알아보자

SQL JOIN

SQL에서 JOIN 은 테이블의 column을 기반으로 두 개 이상의 테이블을 결합하는 것을 말한다.

INNER JOIN

image image

INNER JOIN 은 두 개 이상의 테이블에서 column을 기반으로 일치하는 값이 있는 데이터를 반환한다.

LEFT JOIN (LEFT OUTER JOIN)

image image

LEF JOIN(LEFT OUTER JOIN) 은 column을 기반으로 일치하는 값이 있는 데이터뿐만 아니라 왼쪽 테이블의 데이터를 반환한다. 일치하는 항목이 없으면 Null을 반환한다.

RIGHT JOIN (RIGHT OUTER JOIN)

image image

RIGHT JOIN(RIGHT OUTER JOIN) 은 column을 기반으로 일치하는 값이 있는 데이터뿐만 아니라 오른쪽 테이블의 데이터를 반환한다. 일치하는 항목이 없으면 Null을 반환한다.

FULL OUTER JOIN

image image FULL OUTER JOIN 은 column을 기반으로 일치하는 값이 있는 데이터뿐만 아니라 왼쪽, 오른쪽 테이블의 데이터를 반환한다. 일치하는 항목이 없으면 Null을 반환한다.

CROSS JOIN

image image

CROSS JOIN(상호 조인)은 한쪽 테이블의 모든 행과 다른쪽 테이블의 모든 행의 데이터를 반환한다. 결합되지 않고, 각 테이블의 모든 행이 다른 테이블의 모든 행과 결합되어, 상호 조인의 결과값은 각 행의 개수를 곱한 수만큼 된다. 카테시안 곱(CARTESIAN PRODUCT) 이라고도 한다.

차집합

image

SQL JOIN에서 차집합은 LEFT JOIN || RIGHT JOIN 을 사용하여 두 테이블을 결합하고, 오른쪽 || 왼쪽의 열이 NULL 인 행을 필터링하여 데이터를 반환할 수 있다. 예시 SQL문은 다음과 같다.

1
2
3
4
SELECT n.id, n.이름, n.과목, n.점수
FROM name as n
LEFT JOIN age as a ON n.이름 = a.이름 
WHERE a.이름 IS NULL;