DB/Oracle
[ORACLE] OUTER JOIN (+)
codingD
2020. 7. 10. 17:33
오라클 아우터 조인 (OUTER JOIN)
- INNER JOIN과 반대 되는 개념
- 데이터가 공통적으로 양 쪽에 존재하지 않는다고 해도 조회가 가능하도록 하는 JOIN
- Equi Join은 두 개의 테이블 중 한 쪽 컬럼에 값이 없다면 나머지 테이블의 값을 반환하지 못함
- OUTER JOIN의 연산자 (오라클 한정) ☞ (+)
- (+) 은 양 쪽에 오지 못함
- 조인 시, 값이 없는 쪽에 (+) 을 위치함
SELECT DISTINCT emp.deptno,dept.deptno AS 팀번호 FROM emp, dept
WHERE emp.deptno(+) = dept.deptno;
--추가 조건절에도 (+) 붙여줘야함
SELECT DISTINCT emp.deptno,dept.deptno AS 팀번호 FROM emp, dept
WHERE emp.deptno(+) = dept.deptno;
AND emp.name(+) LIKE '김%';
발생할 수 있는 에러
- ORA-01417: 하나의 테이블은 하나의 다른 테이블과 포괄 조인할 수 있습니다
- 대상 테이블을 두 개 이상의 테이블과 동시에 OUTER JOIN을 할 때 발생함
- [참고] https://ninearies.tistory.com/225