728x90
1. on 절을 사용한 조인
2. using절을 사용한 조인
3. left/right/full outer 조인
4. cross 조인
5. natural 조인
1. on절을 사용한 조인
예제) DALLAS에서 근무하는 사원의 이름과 부서위치를 출력하시오
select e.ename, d.loc
from emp e join dept d
on (e.deptno = d.deptno)
where d.loc = 'DALLAS';
on ( 조인조건 )
where 검색 조건
2. using절을 사용한 조인
select e.ename, d.loc
from emp e join dept d
using (deptno);
-> using절에 연결고리가 되는 컬럼명을 테이블 별칭 없이 괄호 안에 적어주면 된다.
3. left/right/full outer 조인
oracle 조인 문법 | 1999 ansi 조인 문법 | |
right outer join | select e.ename, d.loc from emp e, dept d where e.deptno (+) = d.deptno |
select e.ename, d.loc from emp e right outer join dept d on (e.deptno = d.deptno); |
left outer join | select e.ename, d.loc from emp e, dept d where e.deptno = d.deptno (+) |
select e.ename, d.loc from emp e left outer join dept d on (e.deptno = d.deptno); |
full outer join | x | select e.ename, d.loc from emp e full outer join dept d on (e.deptno = d.deptno); |
4.cross join - equi join에 조인 조건이 없는 조인의 결과와 같은 조인
select e.ename, d.loc
from emp e, dept d;
select e.ename, d.loc
from emp e cross join dept d
-> 위의 두개의 쿼리 결과가 같다. (조건이 없어서 전부 조인하기 때문에 거의 쓸 일 없음)
5. natural join - 두 테이블의 동일한 이름을 갖는 컬럼은 모두 조인
select ename, loc
from emp natural join dept;
select e.ename, d.loc
from emp e, dept d
where e.deptno = d.deptno;
위의 두 쿼리의 결과는 같다.