문제
다음 세 테이블을 모두 등가 조인했을 때 결과 행 수로 가장 적절한 것은?
| C1 | C2 | C3 |
|---|---|---|
| 1 | 2 | 3 |
| C1 | C2 | C3 |
|---|---|---|
| 1 | 2 | NULL |
| C1 | C2 | C3 |
|---|---|---|
| 1 | NULL | NULL |
SQLSELECT COUNT(*) FROM T1, T2, T3 WHERE T1.C1 = T2.C1 AND T2.C1 = T3.C1;
① 0개 ② 1개 ③ 2개 ④ 3개
정답
2번
해설
정답: 2. 조인 조건이 C1만 비교하므로 세 테이블 모두 C1=1로 매칭되어 결과는 1건이다.
오답 풀이
- 1번: C1 값이 모두 1이므로 매칭 행이 존재한다.
- 2번: 각 테이블에 매칭 행이 1개씩 있으므로 1건이다.
- 3번: NULL 컬럼은 조인 조건에 사용되지 않는다.
- 4번: 세 테이블 수와 결과 행 수를 혼동한 값이다.
보충 개념 조인 결과는 실제 조인 조건에 포함된 컬럼을 기준으로 결정된다. NULL 컬럼이 있어도 조인 조건에 포함되지 않으면 해당 NULL은 매칭 여부에 영향을 주지 않는다.