1. 문제
The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id.
+----+-------+--------+-----------+
| Id | Name | Salary | ManagerId |
+----+-------+--------+-----------+
| 1 | Joe | 70000 | 3 |
| 2 | Henry | 80000 | 4 |
| 3 | Sam | 60000 | NULL |
| 4 | Max | 90000 | NULL |
+----+-------+--------+-----------+
Given the Employee table, write a SQL query that finds out employees who earn more than their managers. For the above table, Joe is the only employee who earns more than his manager.
+----------+
| Employee |
+----------+
| Joe |
+----------+
2. 답
SELECT employee.name AS Employee
FROM employee
INNER JOIN employee AS manager ON employee.managerid = manager.id
WHERE employee.salary > manager.salary
3. KEY POINT
- Self JOIN : 자기 자신을 JOIN
- 자기자신을 JOIN할 때, 두 테이블을 혼용하지 않도록 AS를 사용하여 별명을 붙이기
- INNER JOIN: 왼쪽 테이블을 기준으로 합쳐야 하므로 사용
leetcode.com/problems/employees-earning-more-than-their-managers/
'MySQL > 문제풀이' 카테고리의 다른 글
[HackerRank] Self JOIN: Symmetric Pairs (0) | 2021.03.15 |
---|---|
[LeetCode] Self JOIN : 197. Rising Temperature (0) | 2021.03.15 |
[LeetCode] LEFT JOIN : 183. Customers Who Never Order (0) | 2021.03.15 |
[HackerRank] INNER JOIN : Average Population of Each Continent (0) | 2021.03.15 |
[HackerRank] INNER JOIN : Asian Population (0) | 2021.03.15 |
댓글