어떤 책에서 아우터 조인일 때
where 절에서 =, and 연산자만 사용가능하다고 나왔나요?
like,in, > 등 사용 가능합니다.
다음은 그것들을 사용한 예제 입니다.
select * from emp e, dept d
where e.deptno = d.deptno(+)
and D.DNAME(+) like 'a%';
select * from emp e, dept d
where e.deptno = d.deptno(+)
and D.DNAME(+) in ( 'ACCOUNTING','SALES') ;
select * from emp e, dept d
where e.deptno = d.deptno(+)
and D.DNAME(+) > 'SALES' ;
select * from emp e, dept d
where e.deptno > d.deptno(+);
= 과 And 만 사용된다고 한정짓는것은 잘못이구요.
아우터 조인에서는 In 절과 Or 절 사용에 제약이 있습니다.
따라서 현님께서 제시하신 쿼리중 두번째 In 을 사용한 쿼리는 에러가 납니다.
ORA-01719 : 포괄 조인 운영 (+)는 OR 또는 IN 의 연산을 허용하지 않습니다.
또 다른 제약사항으로는 두개 테이블과 동시 아우터 조인이 허용되지 않습니다.
FROM emp a, emp b, dept d
WHERE a.deptno = d.deptno(+)
AND b.deptno = d.deptno(+)
ORA-01417 : 하나의 테이블은 하나의 다른 테이블과 포괄 조인할 수 있습니다.