Problem Solving

[LeetCode] Employees With Missing Information

luminous13 2022. 11. 8. 13:15

문제

풀이

JOIN 유형

이 문제에서는 이름이 없거나 봉급이 없는 직원의 employee_id를 조회해야 하므로 AUB 에서 교집합을 제외한 데이터를 찾는 문제다.

참고로 Oracle에서는 full join을 지원하지만 MYSQL에서는 Full Join을 지원하지 않기 때문에 LEFT JOIN과 UNION을 이용해서 문제를 풀어야 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT e.employee_id
FROM Employees e
LEFT JOIN Salaries s
ON e.employee_id = s.employee_id
where salary is null
 
UNION
 
SELECT s.employee_id
FROM Salaries s
LEFT JOIN Employees e
ON s.employee_id = e.employee_id
WHERE name is null
order by 1;
cs