Leetcode577. 员工奖金(简单)

问题
查询所有奖金<1000的员工的姓名和奖金。

表: 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  |
+-------+-------+

解答
首先两表连接 这里需要左连接

select E.name, B.bonus
from Employee as E
left join Bonus as B
on E.empId = B.empId

然后根据bonus进行筛选 奖金<1000 没有奖金(奖金为NULL)也符合

select E.name, B.bonus
from Employee as E
left join Bonus as B
on E.empId = B.empId
where B.bonus <1000 or B.bonus is null;

你可能感兴趣的:(Leetcode577. 员工奖金(简单))