• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

SELF JOIN 질문입니다

22.10.19 17:39 작성 조회수 167

0

수업에서

SELECT A.name AS Employee

FROM Employee AS A

INNER JOIN Employee AS B ON A.managerID = B.id

WHERE A.salary > B.salary

이런 식으로 풀으셨는데

왜 아래와 같이 푸는 방식이랑 무엇인 다른지 잘 모르겠습니다.

SELECT A.name AS Employee

FROM Employee AS A

INNER JOIN Employee AS B ON A.id = B.managerid

WHERE A.salary > B.salary

 

답변 1

답변을 작성해보세요.

0

수업의 풀이에서는 A에서 employee의 정보, B에서 manager의 정보를 가져오는 방식을 사용했습니다.
조인 키로 A.managerID와 B.id를 붙여 A 테이블에 있는 employee를 관리하는 manager의 이름을 급여 정보(salary)를 B에서 가져오는 겁니다.

직접 작성하신 쿼리는 A.id와 B.managerid를 붙였으므로 풀이와 반대로 A에서 manager의 정보를, B에서 employee의 정보를 가져오게 됩니다.
이렇게 할 경우에는 서로 위치가 바뀐 것이므로 WHERE 절 조건의 부등호도 바뀌어야 하고, employee의 이름은 B 테이블에서 추출해야 합니다.

SELECT B.name AS Employee
FROM Employee AS A
INNER JOIN Employee AS B ON A.id = B.managerid
WHERE A.salary < B.salary

답변 감사합니다!!