본문 바로가기

데이터베이스/SQL & PL/SQL

[SQL] SELF JOIN, 내 자신과의 조인


이번에 다루게 될 것은 SELF JOIN 입니다.
말 그대로 해당 테이블 자신과 조인을 하는 것을 일컫는데요.

사실 잘 쓰이진 않지만 쓰는 경우도 있습니다.
일단 소개를 하자면 내부조인을 하든 외부조인을 하든 자기 자신의 테이블의 이름을
적어주면 되겠는데요.
이를테면 다음과 같이요.

FROM hr.employees INNER JOIN hr.employees

이렇게 적어주면 되겠습니다.
그렇다면, 어떻게 쓰일까요?

예로. employees 테이블을 살펴보면
employee_id 와 manager_id 컬럼이 있는 것을 볼 수 있는데요.

여기서 manager_id는 어느 한사원의 상관의 employee_id가 되겠죠?
그러니 한사원의 상관의 이름이나 기타 다른 정보를 알고 싶을때 사용될 수 있습니다.

다음과 같이 쓸수 있죠.
SELECT emp.first_name || emp.last_name || '''s manager is ' || Memp.first_name AS " "
FROM hr.employees emp INNER JOIN hr.employees Memp
ON emp.employee_id=Memp.manager_id;



(전체결과가 아닌 전체결과의 일부분입니다.)


위와 같이 사용될 수 있어요. 각 사원들의 직속상관의 이름을 알 수 있죠.
셀프조인에 대해서 도움이 되셨나요??