문제
다음 두 SQL의 결과 차이로 가장 적절한 것은?
-- SQL1
SQLSELECT A.ID FROM A LEFT JOIN B ON A.ID=B.ID LEFT JOIN C ON B.ID=C.ID;
-- SQL2
SQLSELECT A.ID FROM A LEFT JOIN B ON A.ID=B.ID LEFT JOIN C ON A.ID=C.ID;
① 결과가 항상 동일하다 ② SQL1은 B가 NULL인 경우 C와 조인되지 않고, SQL2는 A와 C가 직접 조인된다 ③ SQL1이 더 많은 결과를 반환한다 ④ SQL2가 더 많은 결과를 반환한다
정답
2번
해설
② SQL1에서 두 번째 LEFT JOIN의 조건이 'B.ID=C.ID'이므로, A와 B가 매칭되지 않아 B.ID가 NULL인 경우 C와도 조인되지 않습니다. 반면 SQL2는 'A.ID=C.ID'이므로 B의 존재와 관계없이 A와 C가 직접 조인됩니다. ① B가 NULL인 경우 결과가 달라집니다. ③④ 일반적으로 SQL2가 더 많은 결과를 반환할 가능성이 높습니다.