SQL 스터디 2주차!
JOIN
🖇 1. INNER JOIN
조인 조건을 만족하는 데이터만 결합해 결과로 내보닌다.
- 필터조건 : FROM절의 테이블에서 필요한 데이터를 걸러내는 역할
- FROM절에 사용된 테이블이 하나면 WHERE절에는 필터조건만 존재
- 조인조건 : 두 개의 테이블을 연결하는 역할
- FROM절에 사용된 테이블이 두 개 이상이면 WHERE절에는 필터조건과 조인 조건이 동시에 있을 수 있다.
특징
- 조인 조건을 만족하는 데이터만 결합되어 결과에 나올 수 있다.
- 1건과 M건이 조인되면 M건의 결과가 나온다.
처리과정
- 필터조건 처리 (CUS_ID = ‘A’ 같은)
- 조인조건 검색 → 해당 건이 있다면 다음 조인조건 검색
🖇 2. OUTER JOIN
- 기준 데이터 집합은 조인 조건을 만족하지 않아도 모두 결과에 포함된다.
- 아우터 조인 문법 : 조인조건 컬럼 한 쪽에
(+)
표시(+)
표시가 붙은 쪽은 참조 데이터 집합- 표시가 없는 쪽은 기준 데이터 집합
- 필터 조건에
(+)
사용시 아우터 조인 전에 필터 조건이 사용된다. - 아우터조인에서 참조 데이터 집합은 기준 데이터 집합을 동시에 두 개 이상 가질 수 없다.
- 아우터조인은 기준 데이터 집합과 참조 데이터 집합으로서 조인이 이루어지낟.
- 참조 데이터 집합은 조인 조건에
(+)
가 표시된 쪽이며 반대쪽은 기준 데이터 집합이 된다.
기억할 꿀팁
OUTER JOIN이 많을시 INNER JOIN시 ON절에 필터조건을 같이 쓰면 성능 향상에 유리하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT *
FROM A
INNER JOIN B
ON B.COL = A.COL
AND B.COL2 = '1'
LEFT OUTER JOIN C
-- 생략
VS
SELECT *
FROM A
INNER JOIN B
ON B.COL = A.COL
LEFT OUTER JOIN C
-- 중략
WHERE B.COL2 = '1'
reference
SQL BOOSTER