메뉴 건너뛰기

tnt_db

Oracle Outer Join

운영자 2002.09.17 20:31 조회 수 : 2918 추천:16

Outer Join

용도 : 두개이상의 테이블 join시 한쪽테이블의 행에대해
       다른쪽 테이블에 일치하는 행이 없더라도 다른 쪽 테이블의행을
       Null로하여 Row를 Return한다.

문법 : SELECT COLUMN1,COLUMN2,.....
       FROM   TABLE1,TABLE2,.....
       WHERE  TABLE1.COLUMN = TABLE2.COLUMN (+)

       이경우 기준이 되는 테이블은 TABLE1이다.
       결합된 컬럼값이 테이블2에 없더라도 테이블1에 있으면
       테이블2의 값들은 모두 NULL로 RETRUN 된다.
       물론 양쪽모두에 존재하는값은 모두 나온다.
       단, 테이블1에 없고 테이블2에만 있는 값은 리턴되지 않는다.

       즉, OUTER JOIN 연산자 (+)를 지정한 테이블에 대해서는 일시적으로
       특별한 NULL 열이 작성되고 통상의 JOIN에서는 리턴되지 않는 다른쪽의
       테이블의 행 모두와 JOIN이 일어난다.
       OUTER JOIN 기호는 컬럼명의 바로뒤에 붙어야 한다.
       그리고 하나의 테이블이 OUTER JOIN의 대상으로 삼을 수 있는 테이블의
       수는 한개뿐이다.

예제 : 다음은 OUTER JOIN 과 일반JOIN의 차이를 보여준다.

       일반 JOIN :

       SELECT EMP.EMPNO,EMP.DEPTNO,DEPT.DNAME
       FROM   EMP,DEPT
       WHERE  EMP.JOB='CLERK'
       AND    EMP.DEPTNO=DEPT.DEPTNO;

       EMPNO      DEPTNO     DNAME        
       ---------- ---------- --------------
             7934         10 ACCOUNTING    
             7369         20 RESEARCH      
             7876         20 RESEARCH      
             7900         30 SALES      




       OUTER JOIN :      

       SELECT EMP.EMPNO,EMP.DEPTNO,DEPT.DNAME
       FROM   EMP,DEPT
       WHERE  EMP.JOB='CLERK'
       AND    EMP.DEPTNO=DEPT.DEPTNO(+);

       EMPNO      DEPTNO     DNAME        
       ---------- ---------- --------------
             7934         10 ACCOUNTING    
             7369         20 RESEARCH      
             7876         20 RESEARCH      
             7900         30 SALES        
             7999         50

번호 제목 글쓴이 날짜 조회 수
46 빠진이빨찾기 II 운영자 2002.09.18 3067
45 빠진이빨찾기 운영자 2002.09.18 3122
44 순환참조에서의 상위코드로집계 운영자 2002.09.18 3226
43 CONNECT BY의 SORT와 JOIN 운영자 2002.09.18 2811
42 REPORT 양식맞추기4 운영자 2002.09.18 2597
41 REPORT 양식 맞추기 III 운영자 2002.09.18 3015
40 REPORT 양식 맞추기 II 운영자 2002.09.18 2646
39 REPORT 양식 맞추기 운영자 2002.09.18 31359
38 1:1 JOIN / 1:M JOIN 운영자 2002.09.18 3000
37 TUNING-01 운영자 2002.09.18 2739
36 소계와 합계 운영자 2002.09.18 3489
35 중복DATA 찾아내기 운영자 2002.09.17 2817
34 GROUP별 DATA 분류 운영자 2002.09.17 2982
33 PARAMETER값에 따라 변경이 일어나는 문장 운영자 2002.09.17 15808
32 SELF JOIN 운영자 2002.09.17 3408
» Outer Join 운영자 2002.09.17 2918
30 HINTS (출처-Oracle8.0 Tuning Guide) 운영자 2002.09.17 2735
29 단일행 문자 함수 운영자 2002.09.17 2977
28 단일행 수치 함수 운영자 2002.09.17 2869
27 NOT IN 의 함정 운영자 2002.09.17 2713
위로