JOIN
Join
- 둘 이상의 테이블에서 데이터가 필요한 경우 테이블 조인이 필요
- 일반적으로 조인 조건을 포함하는 WHERE 절을 작성해야 한다.
- 조인 조건은 일반적으로 각 테이블의 PK 및 FK로 구성된다.
JOIN의 종류
- INNER JOIN
- OUTER JOIN
- LEFT OUTER JOIN
- RIGHT OUTER JOIN
JOIN 조건의 명시에 따른 구분
- NATURAL JOIN
- CROSS JOIN(FULL JOIN, CARTESIAN JOIN)
JOIN 시 주의
- 조인의 처리는 어느 테이블을 먼저 읽을지 결정하는 것이 중요
- (처리할 작업량이 상당히 달라진다.)
- INNER JOIN : 어느 테이블을 먼저 읽어도 결과가 달라지지 않아 MySQL 옵티마이저가 조인의 순서를 조절해서 다양한 방법으로 최적화를 수행할 수 있다.
- OUTER JOIN : 반드시 OUTER가 되는 테이블을 먼저 읽어야 하므로 옵티마이저가 조인 순서를 선택할 수 없다.
INNER JOIN
- 가장 일반적인 JOIN의 종류
- 교집합
- 동등 조인(Equi-Join)이라고도 하며, N개의 테이블 조인 시 N-1개의 조인 조건이 필요 함.
- ON을 이용한 join 조건 지정
- USING을 이용한 join 조건 지정
- Natural JOIN
OUTER JOIN
- LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN으로 구분 됨.
- 어느 한 쪽 테이블에는 해당하는 데이터가 존재하는데 다른 쪽 테이블에는 데이터가 존재하는 않을 경우 그 데이터가 검색되지 않는 문제점을 해결하기 위해 사용.
- LEFT OUTER JOIN
- 왼쪽 테이블을 기준으로 JOIN 조건에 일치 하지 않는 데이터까지 출력.
- RIGHT OUTER JOIN
- 오른쪽 테이블을 기준으로 JOIN 조건에 일치 하지 않는 데이터까지 출력.
- FULL OUTER JOIN
- 양쪽 테이블을 기준으로 JOIN 조건에 일치 하지 않는 데이터까지 출력.
-
- 양쪽 테이블을 기준으로 JOIN 조건에 일치 하지 않는 데이터까지 출력.
select 사번, 이름, 부서이름, 직급이름,
date_format(시작일, '%y.%m.%d'), date_format(종료일, '%y.%m.%d')
from employees
where 사번=101;
'코딩 > MySQL' 카테고리의 다른 글
[MySQL] 코딩테스트 대비 문법 정리 (1) | 2023.10.05 |
---|---|
[SQL] GROUP BY vs PARTITION BY (0) | 2023.10.03 |
[SQL] 조건문 (1) | 2023.10.02 |
[SQL] 데이터 조회하기 (0) | 2023.09.29 |