inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 중급 SQL

Self JOIN 리트코드 문제풀이1

SELF JOIN 리트코드 문제풀이

310

David Lee

작성한 질문수 20

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 시 교차점으로 해서 되는거 같은데 정확히는 이해가 안되네요 ㅜ

sql

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 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보다 큰 사람의 이름을 조회하는 코드입니다.

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

리트코드 1280. Students and Examinations

0

75

3

16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문

0

89

2

African Cities 문제관련 질문

0

54

1

SQL 코딩테스트 질문

0

206

1

HACKER RANK에서 문제찾기

0

98

2

강의 자료 다운로드

0

90

2

Asian population 문제가 없어요

0

77

2

INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'

0

68

2

별칭 관련해서 질문 있습니다.

0

79

2

rising temperature 문제 질문

0

98

2

해커랭크 TOP EARNERS 문제 질문

0

99

1

ON 뒤에 질문

0

95

2

INNER JOIN 질문. 강의와 결과값이 다릅니다.

0

196

3

END, 뒤에 * 붙이면 에러가 뜹니다

1

204

2

CustomerID가 중복되서 나타나요

0

234

3

별칭이 전체 테이블을 못 불러와요.

0

144

2

CASE WHEN 쿼리 오류 문의

1

325

3

CASE문제풀이 질문

0

125

1

Customers Who Never Order 풀다가 Alias관련 질문사항

0

138

1

Average Population 질문

0

130

1

Revising Aggregations - The Count Function 질문

0

104

1

Average Population of Each Continent 에대해서 질문

0

193

3

w3schools 에서 쿼리 작성 질문

0

159

1

INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?

0

329

1