컴퓨터 공부/Advanced Database

[5월 27일 3교시] 조인 2

려리군 2009. 5. 27. 16:39

셀프 조인

한 테이블의 외래키가 동일한 테이블의 주키와 관계를 가지는 조인.

recursive한 관계

예시) 어떤 w(부하직원)의 이름의 m(메니저)의 이름을 알고 싶을 때 사용.

SELECT w.empno, w.ename, m.empno, m.ename FROM emp w, emp m WHERE w.mgr = m.empno

부하 테이블의 메니저 열이 메니저 테이블의 사원 열과 같다.


계층 쿼리(트리 쿼리)

테이블이 계층적인 데이터를 포함하면 계층 쿼리 구문을 사용하여 계층적인 순서(트리 레벨)을 구할 수 있다.

START WITH : 첫번째로 조회할 조건을 명시. 이 조건의 row들은 레벨이 1이 되고 root노드가 된다.

CONNECT BY : 다음 번에 조회할 row조건을 명시한다. PRIOR 연산자는 직전 level의 row를 의미한다. 

예로 PRIOR empno = mgr의 뜻은 전 level의 empno가 다음 찾을 row의 mgr과 같은 row들을 찾는 것.