• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

선생님 self join 질문 있습니다

21.11.18 15:29 작성 조회수 109

0

문제 employee earnings more than their managers 에서 조인할떄요

select employee.name as Employee

    from employee 

    inner join employee as manager on employee .id = manager.managerid

    where employee.salary > manager.salary

 

이런식으로  employee.id = manager.managerid 라고 해도 어차피 같은 id 끼리 매칭되기 때문에 답은 똑같을꺼라고 생각해서 출력했는데 답이 틀리다고 뜨네요 ㅠㅠ 

employee.managerid = manager.id 로 조인했을때와 차이점이 뭔가요?

 

 

 

답변 1

답변을 작성해보세요.

1

안녕하세요 co choi님
답변이 늦어져 죄송합니다.

해당 내용은 예제 데이터로 시각화하여 생각해보시는 것이 좋을 것 같아 예시 데이터와 말씀해주신 쿼리를 돌렸을 때 반환되는 결과 함께 첨부드립니다.

예를 들어 예시에서 3번 사원인 Eva의 매니저는 2번 사원인 Emma인데요. 지금 짜주신 쿼리에 의해 manager테이블에서 manager_id를 가져오고 Employee 테이블에서 id를 가져오기로 한다면 이름과는 거꾸로 Employee 테이블에는 매니저들의 이름이 들어가게 되고 거꾸로 Manager 테이블에는 Employee들의 이름이 들어가게 됩니다.

테이블 명을 manager로 지정했다고 해서 매니저인 유저들만 뽑혀서 나오는 것이 아니기 때문에 manager 역할을 하는 사람들의 명단을 뽑기 위해서는 manager_id에 해당하는 id 값을 가진 사람들의 목록을 가져와야 해요.

예시 데이터를 보시고 하나씩 천천히 관계를 생각해보시면 좋을 것 같습니다!

궁금증이 해결 되셨길 바랍니다.