[SQLD 퀴즈] WHERE문을 사용한 조인

다음 중 아래 두 SQL문에 대한 설명으로 가장 적절한 것은? (단, DEPT : EMP = 1 : M)

 

-------------------------------------  아       래 ---------------------------------------

 

SELECT    A.ENAME, A.SAL, B.DNAME

FROM       EMP A, DEPT B

WHERE     A.DEPTNO = B.DEPTNO

AND         B.DEPTNO = 20;

 

SELECT   A.ENAME, A.SAL, B.DNAME

FROM      EMP A, DEPT B

WHERE    A.DEPTNO = 20

AND         B.DEPTNO = 20;

 

 ------------------------------------------------------------------------------------------

 

① 두번째 SQL문은 배치쿼리 시 유리하다.
② 두 SQL문의 수행속도는 현저한 차이가 난다.
③ 두 SQL문의 결과는 동일하다.
④ 옵티마이저 모드나 버전에 따라 다른 결과가 나올 수 있다.

 

 

[출처] http://www.dbguide.net/da.db?cmd=snb9_4_view&boardUid=165468&boardConfigUid=81

 

 

* 정답 및 해설 *

 

정답 : 


b.deptno = 20이고 a.deptno = b.deptno이므로 a.deptno = 20이다. 따라서 위 두 SQL의 처리 결과는 동일하다.

 

DEPT : EMP = 1 : M 구조라 EMP만큼 DATA 가져옴 (DEPT : EMP = 1 : M 이 아니더라도 CROSS JOIN으로 가져오므로 결과는 같음)