안녕하세요...문득 궁금한 점이 생겨서요..
WITH TMP1 AS ( SELECT 'AAAA' ID, '1111' CD FROM DUAL UNION ALL SELECT 'AAAA' ID, '2222' CD FROM DUAL UNION ALL SELECT 'AAAA' ID, '3333' CD FROM DUAL UNION ALL SELECT 'AAAA' ID, '4444' CD FROM DUAL UNION ALL SELECT 'AAAA' ID, '5555' CD FROM DUAL ), TMP2 AS ( SELECT '1111' CD, '20220401' DY FROM DUAL UNION ALL SELECT '2222' CD, '20220402' DY FROM DUAL UNION ALL SELECT '3333' CD, '20220403' DY FROM DUAL UNION ALL SELECT '9999' CD, '20220403' DY FROM DUAL ) /* 1번 */ SELECT * FROM TMP2 WHERE CD IN (SELECT CD FROM TMP1 WHERE ID = (SELECT ID FROM TMP1 WHERE CD = '2222' ) ) ; /* 2번 */ SELECT * FROM TMP2 WHERE CD IN (SELECT B.CD FROM TMP1 A, TMP1 B WHERE A.CD = '2222' AND B.ID = A.ID ) ;
다음과 같이 1번 서브쿼리(?)와 2번 조인으로 했을시 차이가 있을까요?
아니면 둘다 동일한 건데 방식의 차이인가요??...제가 무식해서..ㅠㅠ
TMP1에는 ID와 CD 의 인덱스가 각각 존재 합니다..