개발로 자기계발
Published 2023. 5. 11. 14:41
Join 소개 Database & Data/기초지식
728x90

Join

두 개 이상의 테이블에서 관련 있는 데이터를 결합

 

1) Inner Join

두 테이블의 교집합

즉, 두 테이블의 Join 조건에 일치하는 행만 반환

SELECT * FROM table1
INNER JOIN table2
ON table1.matching_column = table2.matching_column;

 

2) Left (Outer) Join

첫 번째 테이블의 모든 행과 두 번째 테이블에서 일치하는 행을 반환

일치하지 않는 경우, 두 번째 테이블의 값은 NULL로 반환

SELECT * FROM table1
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;

 

3) Right (Outer) Join

두 번째 테이블의 모든 행과 첫 번째 테이블에서 일치하는 행을 반환

일치하지 않는 경우, 첫 번째 테이블의 값은 NULL로 반환

SELECT * FROM table1
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;

 

4) Full (Outer) Join

두 테이블의 합집합을 반환

즉, 두 테이블 중 어느 한쪽에만 존재하는 행도 모두 반환하며, 일치하지 않는 경우 해당 테이블의 값은 NULL로 반환

SELECT * FROM table1
FULL OUTER JOIN table2
ON table1.matching_column = table2.matching_column;

 

5) Cross Join (또는 Cartesian Product)
두 테이블 간에 조건이나 일치하는 열 없이 모든 가능한 조합을 생성

이로 인해 반환되는 행의 수는 두 테이블의 행 수의 곱이 된다.

SELECT * FROM table1
CROSS JOIN table2;

Cross Join을 Implicit(암시적) 방식으로 사용하는 방법

SELECT * FROM table1, table2;

 

COALESCE

주로 NULL 값을 기본값 또는 다른 값으로 대체할 때 사용

SELECT COALESCE(column1, column2) AS 'Column'
FROM table;

주어진 값들 중에서 NULL이 아닌 첫 번째 값을 찾아 반환

SELECT COALESCE(NULL, NULL, 10, 20, NULL) AS 'Column';

모든 인수가 NULL인 경우 COALESCE 함수는 NULL을 반환한다.

 

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)