SELF JOIN 질문입니다
264
작성한 질문수 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
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





