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
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
14 | SELF JOIN | 운영자 | 2002.09.17 | 3408 |
» | Outer Join | 운영자 | 2002.09.17 | 2918 |
12 | HINTS (출처-Oracle8.0 Tuning Guide) | 운영자 | 2002.09.17 | 2735 |
11 | 단일행 문자 함수 | 운영자 | 2002.09.17 | 2977 |
10 | 단일행 수치 함수 | 운영자 | 2002.09.17 | 2869 |
9 | NOT IN 의 함정 | 운영자 | 2002.09.17 | 2713 |
8 | DYNAMIC SQL 이란? (퍼온글 : 출처모름) | 운영자 | 2002.09.17 | 3291 |
7 | PL/SQL에서 ARRAY사용 예제 | 운영자 | 2002.09.17 | 3254 |
6 | 년중 몇번째 주간인지 알아내기(FUNCTION) - ORACLE이 제공하는 것과 다름 | 운영자 | 2002.09.17 | 3733 |
5 | SORT후 번호부여 | 운영자 | 2002.09.17 | 2774 |
4 | JOIN 과 UNION 의 선후관계 | 운영자 | 2002.09.17 | 4634 |
3 | 중복 DATA CHECK | 운영자 | 2002.09.17 | 2790 |
2 | crontab 에 오라클 환경변수를 인식시킬때 [1] | 원우석 | 2004.12.06 | 5025 |
1 | oracle proc 에서 stdarg.h파일사용하기위한 환경설정 | 원우석 | 2004.12.06 | 12829 |