◈ Out(외부) Join
- equijoin 문장들의 한가지 제약점은 그것들이 조인을 생성하려 하는 두 개의 테이블의 두 개
컬럼에서 공통된 값이 없다면 테이블로부터 테이터를 Return하지 않는 다는 것입니다.
- 정상적으로 조인 조건을 만족하지 못하는 행들을 보기위해 outer join을 사용합니다.
Outer join 연산자 "( + )"입니다.
-조인시킬 값이 없는 조인측에 "( + )"를 위치 시킵니다.
- Outer join 연산자는 표현식의 한 편에만 올 수 있습니다.
- equijoin 문장들의 한가지 제약점은 그것들이 조인을 생성하려 하는 두 개의 테이블의 두 개
컬럼에서 공통된 값이 없다면 테이블로부터 테이터를 Return하지 않는 다는 것입니다.
- 정상적으로 조인 조건을 만족하지 못하는 행들을 보기위해 outer join을 사용합니다.
Outer join 연산자 "( + )"입니다.
-조인시킬 값이 없는 조인측에 "( + )"를 위치 시킵니다.
- Outer join 연산자는 표현식의 한 편에만 올 수 있습니다.
예제1) 일반 조인의 경우 SQL> SELECT DISTINCT(a.deptno), b.deptno FROM emp a, dept b WHERE a.deptno = b.deptno DEPTNO DEPTNO ---------- ---------- 10 10 20 20 30 30 INNER JOIN 또는 =조인이라고 부르는 조인이죠 예제2)out join을 했을 경우 SQL> SELECT DISTINCT(a.deptno), b.deptno FROM emp a, dept b WHERE a.deptno(+) = b.deptno DEPTNO DEPTNO ------- ---------- 10 10 20 20 30 30 40 ※ 다음의 쿼리를 한번 잘 보시기 바랍니다. SQL> SELECT DISTINCT(a.deptno), b.deptno FROM emp a, dept b WHERE a.deptno(+) = b.deptno ANDa.ename LIKE '%'; DEPTNO DEPTNO ---------- ---------- 10 10 20 20 30 30 쿼리 결과를 잘 보면 out조인이 되지 않은 것을 알 수 있습니다. 위 쿼리를 out조인이 되기 위해서는 아래와 같이 고쳐야 합니다. SQL> SELECT DISTINCT(a.deptno), b.deptno FROM emp a, dept b WHERE a.deptno(+) = b.deptno AND a.ename(+) LIKE '%' DEPTNO DEPTNO ---------- ---------- 10 10 20 20 30 30 40 OUT조인 조건이 걸려있는 테이블에는 다른 조건절이 들어와도 똑같이 OUT조인 연산자인 (+)를 해주어야 합니다. |
'개발 > ORCLE' 카테고리의 다른 글
오라클 문자열 처리 함수 (0) | 2008.10.24 |
---|---|
오라클 SubStr (0) | 2008.10.24 |
오라클 Length, LengthB (0) | 2008.10.24 |
오라클 UNION & UNION ALL & INTERSECT & MINUS (0) | 2008.10.24 |
오라클 INDEX (0) | 2008.10.24 |