SELF JOIN 질문입니다
269
작성한 질문수 3
수업에서
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
리트코드 1280. Students and Examinations
0
125
3
16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문
0
132
2
African Cities 문제관련 질문
0
82
1
SQL 코딩테스트 질문
0
302
1
HACKER RANK에서 문제찾기
0
146
2
강의 자료 다운로드
0
125
2
Asian population 문제가 없어요
0
115
2
INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'
0
108
2
별칭 관련해서 질문 있습니다.
0
118
2
rising temperature 문제 질문
0
138
2
해커랭크 TOP EARNERS 문제 질문
0
135
1
ON 뒤에 질문
0
134
2
INNER JOIN 질문. 강의와 결과값이 다릅니다.
0
233
3
END, 뒤에 * 붙이면 에러가 뜹니다
1
249
2
CustomerID가 중복되서 나타나요
0
278
3
별칭이 전체 테이블을 못 불러와요.
0
187
2
CASE WHEN 쿼리 오류 문의
1
382
3
CASE문제풀이 질문
0
158
1
Customers Who Never Order 풀다가 Alias관련 질문사항
0
161
1
Average Population 질문
0
171
1
Revising Aggregations - The Count Function 질문
0
138
1
Average Population of Each Continent 에대해서 질문
0
221
3
w3schools 에서 쿼리 작성 질문
0
207
1
INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?
0
363
1





