예제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
예제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조인 연산자인 (+)를 해주어야 합니다.
|