LeetCode:Database 17.员工奖金

Posted Xiao Miao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:Database 17.员工奖金相关的知识,希望对你有一定的参考价值。

要求:选出所有 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 是这张表单的主关键字

Result Table:

+-------+-------+
| name  | bonus |
+-------+-------+
| John  | null  |
| Dan   | 500   |
| Brad  | null  |
+-------+-------+

分析:
1.查询结果为两个表中的内容,且显示Employee 表全部员工,因此需要左外来连接
2.通过bonus<1000(仅能筛选非null值)或者bonus is null筛选出最终数据

SQL语句:

SELECT NAME,bonus
FROM(
SELECT a.name,b.bonus
FROM Employee a
LEFT JOIN bonus b 
ON a.empid=b.empid)
c 
WHERE bonus<1000 OR bonus IS NULL;

以上是关于LeetCode:Database 17.员工奖金的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(数据库)- 员工奖金

LeetCode:Database 42.项目员工 I

LeetCode:Database 44.项目员工 III

LeetCode:Database 43.项目员工II

LeetCode:Database 13.员工薪水中位数

LeetCode:Database 90.使用唯一标识码替换员工ID