문제
다음 세 개의 SQL 중 결과가 다른 것은?
[A] ID:1,2 [B] ID:1,3 [C] ID:1,4
-- SQL1
SQLSELECT * FROM A JOIN B ON A.ID=B.ID JOIN C ON A.ID=C.ID;
-- SQL2
SQLSELECT * FROM A JOIN B ON A.ID=B.ID JOIN C ON B.ID=C.ID;
-- SQL3
SQLSELECT * FROM (A JOIN B ON A.ID=B.ID) JOIN C ON A.ID=C.ID;
① SQL1만 다름 ② SQL2만 다름 ③ SQL3만 다름 ④ 모두 동일
정답
2번
해설
주어진 데이터에서 A∩B={1}, A∩C={1}, B∩C={}입니다. SQL1: A와 B를 ID=1로 조인한 후, 그 결과를 C와 A.ID=1로 조인하여 결과가 나옵니다. SQL3: 괄호로 묶였지만 조인 조건이 SQL1과 동일하여 같은 결과가 나옵니다. SQL2: A와 B를 ID=1로 조인한 후, 그 결과를 C와 B.ID로 조인하는데, B.ID=1이지만 C에는 ID=1이 없으므로 결과가 나오지 않습니다. 따라서 SQL2만 결과가 다릅니다.