<좌우외부조인(Left Right Outer Join)>

SELECT 테이블1.컬럼, . . . 테이블2.컬럼
FROM 테이블1
[ LEFT | RIGHT | FULL ] [ OUTER ] JOIN 테이블2 [ ON 조인조건 | USING 조인조건 ]
WHERE 일반조건;

 

  • LEFT: 테이블 1을 왼쪽 테이블이라 부르고 왼쪽 테이블에 조인조건과 일치하지 않는 행도 검색
  • RIGHT: 테이블2를 오른쪽 테이블이라 부르고 오른쪽 테이블에 조인 조건과 일치하지 않는 행도 검색
  • FULL: 양쪽 테이블 모두에서 조인 조건에 일치하지 않는 행을 검색에 포함한다.
            (+)로 표현할 수 없다. 
  • 조인조건은 ON절 USING절 모두 사용가능
  • 자연 조인과는 혼용할 수 없다.

 

--사원이름과 소속부서를 검색한다.
SELECT eno, ename, dno, dname
FROM emp
RIGHT OUTER JOIN dept USING (dno); --OUTER는 생략가능

SELECT eno, ename, d.dno, dname
FROM emp e
RIGHT JOIN dept d ON e.dno=d.dno;

 

 

 

 

<교차조인>

:조인조건이 생략된 형태의 조인
조인 조건이 생략될 경우 테이블 각각의 행들이 모두 매핑되어 검색됨 -> 카테이션 곱(Carteisian Product)
일반적으로는 잘못된 검색형태이지만 Data Warehouse에서 의도적으로 수행하는 경우가 있다.

 

SELECT eno, ename, dname
FROM emp
CROSS JOIN dept;

--연결할수있는 모든 경우의 수를 모두 뽑아냄.
--일반적으로는 오류