문제
직원 이름과 보너스 금액을 보너스가 없거나 1000보다 작은 경우에만 출력하는 문제였다.
문제 풀이
SELECT e.name, b.bonus
FROM Employee e
LEFT JOIN Bonus b
ON e.empId=b.empId
WHERE bonus<1000 OR bonus IS NULL;
LEFT JOIN을 사용하여 Employee 테이블에 있는 모든 직원을 포함시키고 해당 직원과 일치하는 Bonus 테이블의 데이터를 연결했다. 만약 보너스가 없다면 bonus는 NULL로 반환된다.
LEFT JOIN은 Employee 테이블에 있는 모든 행을 포함하려고 하지만 WHERE 절에서 조건을 적용하면 bonus가 NULL인 경우는 제외되므로 bonus가 NULL인 경우도 조건에 포함시켜줘야 한다.
'코딩테스트 > LeetCode' 카테고리의 다른 글
[LeetCode/MySQL]584. Find Customer Referee (0) | 2025.05.10 |
---|---|
[LeetCode/MySQL]607. Sales Person (0) | 2025.05.10 |
[LeetCode/MySQL]511. Game Play Analysis I (0) | 2025.05.04 |
[LeetCode/MySQL]197. Rising Temperature (0) | 2025.05.04 |
[LeetCode/MySQL]196. Delete Duplicate Emails (0) | 2025.05.04 |