Inflearn brand logo image

인프런 커뮤니티 질문&답변

index님의 프로필 이미지
index

작성한 질문수

김영한의 실전 데이터베이스 - 기본편

셀프 조인

셀프조인 상사 출력

해결된 질문

작성

·

53

0

employee_id와 manager_id를 사용해서 셀프조인 하는 과정에서

자신의 상사를 모두 표시하고 싶다는 생각이 들었습니다.

 

SELECT
    a.employee_id, a.name,
    b.employee_id, b.name,
    c.employee_id, c.name,
    d.employee_id, d.name,
    e.employee_id, e.name
FROM
    employees a 
    left join employees b on a.manager_id = b.employee_id
    left join employees c on b.manager_id = c.employee_id
    left join employees d on c.manager_id = d.employee_id
    left join employees e on d.manager_id = e.employee_id

 

image.png

 

이와같이 직원 코드가 있고 상사 코드가 있는 경우 자기로부터 가장 높은 상사까지 한 행에 다 출력하고 싶은 경우에는 어떤 방법이 최선인지 알고 싶습니다.

지금은 단순히 데이터 개수가 적기 때문에 몇번의 조인으로 해결되었지만 실무에서 데이터 개수가 많다고 할때 이와같이 구하려면 어떻게 구해야하는지 궁금합니다.

 

즉 위 코드처럼 여러번 조인을 쓰는게 아니라 원하는 결과를 얻을 때 까지 자동으로 반복시킬 방법이 있는지 궁금합니다.

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. index님

이 문제를 해결하려면 재귀 CTE라는 방법을 사용해야 합니다.

재귀 CTE로 검색해보시면 원하시는 문제를 해결하실 수 있을거에요 🙂

감사합니다.

index님의 프로필 이미지
index

작성한 질문수

질문하기