[SQL 문제 풀이] Employees Whose Manager Left the Company (매니저가 회사를 떠난 직원들)

리트코드
Stupefyee's avatar
Jul 01, 2025
[SQL 문제 풀이] Employees Whose Manager Left the Company (매니저가 회사를 떠난 직원들)
Employees Whose Manager Left the Company - LeetCode
Can you solve this real interview question? Employees Whose Manager Left the Company - Table: Employees +-------------+----------+ | Column Name | Type | +-------------+----------+ | employee_id | int | | name | varchar | | manager_id | int | | salary | int | +-------------+----------+ In SQL, employee_id is the primary key for this table. This table contains information about the employees, their salary, and the ID of their manager. Some employees do not have a manager (manager_id is null).   Find the IDs of the employees whose salary is strictly less than $30000 and whose manager left the company. When a manager leaves the company, their information is deleted from the Employees table, but the reports still have their manager_id set to the manager that left. Return the result table ordered by employee_id. The result format is in the following example.   Example 1: Input: Employees table: +-------------+-----------+------------+--------+ | employee_id | name | manager_id | salary | +-------------+-----------+------------+--------+ | 3 | Mila | 9 | 60301 | | 12 | Antonella | null | 31000 | | 13 | Emery | null | 67084 | | 1 | Kalel | 11 | 21241 | | 9 | Mikaela | null | 50937 | | 11 | Joziah | 6 | 28485 | +-------------+-----------+------------+--------+ Output: +-------------+ | employee_id | +-------------+ | 11 | +-------------+ Explanation: The employees with a salary less than $30000 are 1 (Kalel) and 11 (Joziah). Kalel's manager is employee 11, who is still in the company (Joziah). Joziah's manager is employee 6, who left the company because there is no row for employee 6 as it was deleted.
Employees Whose Manager Left the Company - LeetCode
notion image
급여가 3만 달러 미만이고 매니저가 퇴사한 직원의 신분증을 찾아보세요. 매니저가 퇴사하면 직원 테이블에서 해당 정보가 삭제되지만, 보고서에는 퇴사한 매니저의 manager_id가 여전히 설정되어 있습니다. employee_id에서 주문한 결과 테이블을 반환합니다.
 

내가 작성한 쿼리

MySQL, Oracle

SELECT e1.employee_id FROM Employees e1 LEFT JOIN Employees e2 ON e1.manager_id = e2.employee_id WHERE e1.salary < 30000 AND e1.manager_id IS NOT NULL -- 매니저가 원래 없던 사람 거르기 AND e2.employee_id IS NULL -- 퇴사자 ORDER BY e1.employee_id;
Share article

stupefyee