JOIN
- 여러 테이블 참조, 출력용
- 보통 PK, FK로 조인함
- A,B,C 테이블 조인시 A,B 하고 그 결과를 C와 하는 방식으로 진행됨
종류
| 조인 종류 | 조인 조건 | 특징 | ON / WHERE 필요 | 주 사용 목적 |
|---|
| EQUI JOIN | = | 가장 일반적인 조인 | 필요 | PK–FK 관계 연결 |
| NON EQUI JOIN | = 제외 (<, >, BETWEEN 등) | 범위 조건 조인 | 필요 | 구간·등급 매핑 |
| INNER JOIN | 조건 일치 | 조건 만족 행만 반환 | 필요 | 공통 데이터 조회 |
| OUTER JOIN | 조건 불일치 포함 | NULL 포함 반환 | 필요 | 누락 데이터 포함 |
| NATURAL JOIN | 자동 일치 | 같은 이름 컬럼 자동 조인 | 불필요 | 빠른 간단 조인 |
| CROSS JOIN | 없음 | 데카르트 곱 | 불필요 | 경우의 수 생성 |
| SELF JOIN | 자기 자신 | 같은 테이블을 2번 사용 | 필요 | 계층·상하관계 |
EQUI JOIN
- 테이블간 컬럼이 일치하는 경우 사용
- 오라클 버전
SELECT * FROM 테이블1, 테이블2
WHERE 테이블1.컬럼 = 테이블2.컬럼
SELECT * FROM 테이블1
INNER JOIN 테이블2
ON 테이블1.컬럼 = 테이블2.컬럼
NON EQUI JOIN
- 테이블 간 컬럼이 일치하지 않을 때 사용
-> 범위를 가지고 조회에 사용
SELECT 테이블1.이름, 테이블1.EXP, 테이블2.LEVEL
FROM 테이블1, 테이블2
WHERE 테이블1.EXP BETWEEN 테이블2.최소EXP AN 테이블2.최대EXP
3개 이상의 테이블 조인
- 조인을 여러개 써서 함 (예: 3개의 테이블이면 2번)
SELF JOIN
- 같은 테이블에서 조인
- 같은 컬럼이 2번 이상 나오니 AS로 구분하자
- 이때, 기본적으로 INNER가 되어 null은 안 나오니 원한다면 OUTER 쓰자