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
용도 : 두개이상의 테이블 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
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
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 |