문제
다음 상황에서 TUTOR LEFT OUTER JOIN CLASS를 수행한 결과 행 수로 가장 적절한 것은?
<조건>
- 튜터 테이블에는 튜터 2명이 있다.
- 클래스 테이블에는 클래스 4개가 있다.
- LEFT OUTER JOIN의 왼쪽 테이블은 TUTOR이다.
- 각 클래스는 특정 튜터에 속한다.
- 두 튜터는 각각 최소 1개 이상의 클래스를 담당한다.
① 2개 ② 4개 ③ 6개 ④ 8개
정답
2번
해설
정답: 2. LEFT OUTER JOIN은 왼쪽 테이블의 행을 보존하지만, 오른쪽 테이블에 여러 행이 매칭되면 왼쪽 행은 매칭된 오른쪽 행 수만큼 반복된다. 클래스 4개가 모두 특정 튜터에 속하고, 두 튜터가 각각 최소 1개 이상의 클래스를 담당하므로 조인 결과는 클래스 행 기준으로 총 4건이다.
오답 풀이
- 1번: 왼쪽 테이블의 튜터 수만 단순히 반환되는 것이 아니다.
- 2번: 클래스 4개가 모두 튜터와 매칭되므로 결과는 4건이다.
- 3번: 튜터 수와 클래스 수를 단순 합산한 값이다.
- 4번: 모든 튜터와 모든 클래스를 곱한 값으로 잘못 계산한 결과이다.
보충 개념 LEFT OUTER JOIN은 왼쪽 행을 보존한다. 오른쪽에 매칭되는 행이 여러 개 있으면 왼쪽 행은 그 수만큼 반복되고, 매칭되는 오른쪽 행이 없으면 NULL 확장 행이 1건 생성된다.