Outer JOIN 요약
- 아우터 조인은 성능에 문제가 많음…
- NESTED LOOP JOIN => 풀테이블 스켄이 각 로우마다 실행 된다.
- WHERE 절에서만 (+)
- 테이블 간 외부조인 조건이 1개 이상일 경우, 모든 외부조인 조건에 (+)
- 테이블 자신에 (+)를 붙일 수 없다.
- (+)는 컬럼에만, OR 연산자는 사용 불가.
LEFT OUTER JOIN
- 데이터가 없는 쪽 테이블 조인 조건(WHERE 절)에 (+)를 붙여준다.(왼쪽)
RIGHT OUTER JOIN
- 데이터가 없는 쪽 테이블 조인 조건(WHERE 절)에 (+)를 붙여준다.(오른쪽)
FULL OUTER JOIN
- ANSI SQL 은 있음
- ORACLE 은 LEFT , RIGHT 구해서 UNION으로 합쳐줘야함
예제 1
SELECT S.NAME "학생이름", P.NAME "교수이름"
FROM student S, professor P
WHERE S.PROFNO(+) = P.PROFNO
UNION
SELECT S.NAME "학생이름", P.NAME "교수이름"
FROM student S, professor P
WHERE S.PROFNO = P.PROFNO(+);
댓글남기기