577.员工奖金
一、题目描述
选出所有 bonus < 1000 的员工的 name 及其 bonus。
Employee 表单
empId | name | supervisor | salary |
---|---|---|---|
1 | John | 3 | 1000 |
2 | Dan | 3 | 2000 |
3 | Brad | null | 4000 |
4 | Thomas | 3 | 4000 |
empId 是这张表单的主键。
Bonus 表单
empId | bonus |
---|---|
2 | 500 |
4 | 2000 |
empId 是这张表单的主键。
输出示例:
name | bonus |
---|---|
John | null |
Dan | 500 |
Brad | null |
二、思路分析
根据题意,bonus < 1000 的员工包括没有发奖金和发得奖金不够1000这两部分。
本题关键在于没有发奖金的员工( null 值)的处理。
三、代码实现
SELECT
a.name, b.bonus
FROM
Employee a
LEFT JOIN
Bonus b
ON
a.empId = b.empId
WHERE
ifnull(b.bonus, 0) < 1000;