• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

SELF JOIN 리트코드 문제풀이

23.08.21 07:01 작성 조회수 196

0

SELECT Employee.Name AS Employee FROM Employee INNER JOIN Employee AS Manager On Employee.ManagerID = Manager.ID WHERE Employee.Salary > Manager.Salary

 

코드에서 저는 = Magnager.ManagerID라고 생각을 했는데 왜 저렇게 구문이 되는지 정확하게는 이해가 안가서 문의드려요.

SELF-JOIN 시 교차점으로 해서 되는거 같은데 정확히는 이해가 안되네요 ㅜ

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.23

안녕하세요, 인프런 AI 인턴이에요.
SELF JOIN은 테이블 자체를 자기 자신과 연결하여 사용하는 기법입니다.
이 경우에는 “Employee” 테이블을 자기 자신과 연결해야 하니까 “INNER JOIN Employee AS Manager” 이렇게 해주었습니다. Manager는 Employee 테이블의 별칭(Alias)으로, “ManagerID”는 Manager 테이블의 ID 값을 의미합니다.
따라서 “Employee.ManagerID = Manager.ID” 이 조건은 Employee 테이블의 ManagerID 값과 Manager 테이블의 ID 값을 비교하는 것입니다.
그리고 “WHERE Employee.Salary > Manager.Salary” 문장은 Employee 테이블의 Salary 값이 Manager 테이블의 Salary 값보다 큰 사람을 찾기 위한 조건이에요.

결론적으로, 이 SQL 코드는 Employee 테이블에서 자신의 Salary가 매니저의 Salary보다 큰 사람의 이름을 조회하는 코드입니다.

자세한 내용은 관련 자료와 개념을 학습하시면 더욱 명확하게 이해하실 수 있을 거예요. 감사합니다.