SQLD(SQL 개발자) 기출 · JOIN
아래와 같은 테이블 TAB1, TAB2가 있을 때 아래의 SQL의 결과 건수를 알맞게 나열한 것은? 

본문)
SELECT * FROM TAB1 A INNER JOIN TAB2 B ON (A.KEY1 = B.KEY2)
SELECT * FROM TAB1 A LEFT OUTER JOIN TAB2 B ON (A.KEY1 = B.KEY2)
SELECT * FROM TAB1 A FULL OUTER JOIN TAB2 B ON (A.KEY1 = B.KEY2)
SELECT * FROM TAB1 A CROSS JOIN TAB2 B
SELECT * FROM TAB1 A NATURAL JOIN TAB2 B이 문제 풀어보기
정답 및 해설 보기
정답: 2번
INNER JOIN은 값이 같으면 모두 출력되므로 TAB1의 KEY1의 값이 BB인 경우 2건, CC와 DD는 일치하는 값이 없으므로 생략, EE는 한 건이 출력되어 총 3건이 리턴된다. LEFT OUTER JOIN은 TAB1의 KEY1의 값이 모두 출력돼야 하므로 앞의 INNER JOIN 결과에 CC와 DD가 추가적으로 리턴되어 총 5건이 된다. FULL OUTER JOIN은 LEFT OUTER JOIN 결과와 RIGHT OUTER JOIN 결과의 합집합(중복 값은 한 번만 출력)이므로 총 6건이며 CROSS JOIN의 경우는 모든 발생 가능한 조합이므로 4X4, 16건이 리턴된다. NATURAL JOIN에 의해 COL1, COL2 값이 같은 값만 출력되며 이때 NULL은 같다고 볼 수 없기 때문에 제외되어 총 3건이 출력된다.