4.등가 조인
등가 조인(EQUI JOIN)은 NATURAL JOIN(ANSI)과 같은 의미로, 조인 조건이 모두 등호(=)인 조인
조건으로 비교되는 값이 동일한 경우에만 행이 반환됨
2개의 테이블 조인
sql
SELECT a.x AS 'x of ta', b.x AS 'x of tb'
FROM ta a, tb b
WHERE b.x = a.x; -- 각 테이블(a, b)의 x 컬럼 값이 같은 행만 연결(JOIN)하여 조회-> tb 테이블에는 3이 없기 때문에 2개의 행만 반환됨
ANSI 문법
sql
SELECT a.x AS 'x of ta', b.x AS 'x of tb'
FROM ta a
NATURAL
JOIN tb b;| A | B | 조건 | 결과 |
|---|---|---|---|
| B == A일 때, | |||
| 1 | 1 | 1 == 1 | TRUE |
| 1 | 2 | 2 == 1 | FALSE |
| 2 | 1 | 1 == 2 | FALSE |
| 2 | 2 | 2 == 2 | TRUE |
| 3 | 1 | 1 == 3 | FALSE |
| 3 | 2 | 2 == 3 | FALSE |
3개의 테이블 조인, n개의 테이블 조인 시, 조인 조건은 최소 n-1개
sql
SELECT a.x AS 'x of ta', b.x AS 'x of tb', c.x AS 'x of tc'
FROM ta a, tb b, tc c
WHERE a.x = b.x
AND b.x = c.x;→ 모든 테이블에서 서로 값이 동일한 행은 1밖에 없기 때문에 1개의 행만 반환됨
| A | B | B == A | B == A 결과 | C | C == B | C == B 결과 |
|---|---|---|---|---|---|---|
| 1 | 1 | 1 == 1 | TRUE | 1 | 1 == 1 | TRUE |
| 1 | 1 | 1 == 1 | TRUE | 3 | 3 == 1 | FALSE |
| 1 | 2 | 2 == 1 | FALSE | 1 | ||
| 1 | 2 | 2 == 1 | FALSE | 3 | ||
| 2 | 1 | 1 == 2 | FALSE | 1 | ||
| 2 | 1 | 1 == 2 | FALSE | 3 | ||
| 2 | 2 | 2 == 2 | TRUE | 1 | 1 == 2 | FALSE |
| 2 | 2 | 2 == 2 | TRUE | 3 | 3 == 2 | FALSE |
| 3 | 1 | 1 == 3 | FALSE | |||
| 3 | 1 | 1 == 3 | FALSE | |||
| 3 | 2 | 2 == 3 | FALSE | |||
| 3 | 2 | 2 == 3 | FALSE |
조인은 1행씩 순차적으로 수행됨 조건1이 false일 경우, 조건2는 판단하지 않음(단축 평가)
Last updated on