[오라클(Oracle) ] 셀프 조인(SELF JOIN)
셀프 조인(SELF JOIN)은 한 테이블 내의 칼럼끼리 연결하는 조인이다. 따라서 FROM 절에 동일 테이블을 두 번 언급해야 하기 때문에 별칭을 사용해야 한다.
1
2
3
|
SELECT A.칼럼1, B.칼럼2,...
FROM 테이블 A, 테이블 B
WHERE A.칼럼1 = B.칼럼2
|
셀프 조인(SELF JOIN)에서 가장 많이 사용되는 예시는 사원의 관리자를 조회하는 경우이다. 모든 사원들이 사원 테이블에 저장되어 있고 각 사원의 관리자에 해당하는 인물들도 사원 테이블에 있어 한 테이블 내의 칼럼끼리 연결하여 조인해야 한다.

1
2
3
|
SELECT A.NAME, A.MGR, B.NAME
FROM EMP A, EMP B
WHERE A.MGR = B.EMPNO
|
cs |
위의 SQL문 결과 관리자가 배정된 사원들의 조인 결과가 출력된다. 만약 아직 관리자가 정해지지 않은 사원까지 모두 출력해야 한다면 OUTER JOIN을 사용한 SELF JOIN을 해야 한다.
1
2
3
4
5
6
7
8
9
|
SELECT A.NAME, A.MGR, B.NAME
FROM EMP A LEFT OUTER JOIN EMP B
ON A.MGR = B.EMPNO --- 또는
SELECT A.NAME, A.MGR, B.NAME
FROM EMP A, EMP B
WHERE A.MGR = B.EMPNO(+)
|
'Database > Oracle' 카테고리의 다른 글
[오라클(Oracle) ] 임시 테이블 (0) | 2022.04.19 |
---|---|
[오라클(Oracle) ] 서브쿼리(SUBQUERY) / 다중행 서브쿼리 / 다중칼럼 서브쿼리 / 상호연관 서브쿼리 (0) | 2022.04.19 |
[오라클(Oracle) ] 외부 조인 / OUTER JOIN / ANSI JOIN (0) | 2022.04.17 |
[오라클(Oracle) ] 등가 조인(Equi Join) / 비등가 조인(Non- Equi Join) (0) | 2022.04.17 |
[오라클(Oracle) ] 시퀀스(SEQUENCE) (0) | 2022.04.15 |
댓글