inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Self JOIN 리트코드 문제풀이1

SELF JOIN 질문입니다

264

anstmdcks12

작성한 질문수 3

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

 

sql

답변 1

0

지식공유자 J

수업의 풀이에서는 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

0

anstmdcks12

답변 감사합니다!!

리트코드 1280. Students and Examinations

0

94

3

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

0

103

2

African Cities 문제관련 질문

0

65

1

SQL 코딩테스트 질문

0

235

1

HACKER RANK에서 문제찾기

0

109

2

강의 자료 다운로드

0

101

2

Asian population 문제가 없어요

0

88

2

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

0

77

2

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

0

88

2

rising temperature 문제 질문

0

108

2

해커랭크 TOP EARNERS 문제 질문

0

110

1

ON 뒤에 질문

0

106

2

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

0

211

3

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

1

213

2

CustomerID가 중복되서 나타나요

0

242

3

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

0

152

2

CASE WHEN 쿼리 오류 문의

1

342

3

CASE문제풀이 질문

0

133

1

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

0

141

1

Average Population 질문

0

143

1

Revising Aggregations - The Count Function 질문

0

110

1

Average Population of Each Continent 에대해서 질문

0

199

3

w3schools 에서 쿼리 작성 질문

0

166

1

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

0

332

1