前言
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
今日题目:
577.员工奖金
表:Employee
| 列名 | 类型 |
|---|---|
| empId | int |
| name | varchar |
| supervisor | int |
| salary | int |
empId 是该表中具有唯一值的列。该表的每一行都表示员工的姓名和 id,以及他们的工资和经理的 id。
表:Bonus
| 列名 | 类型 |
|---|---|
| AddressId | int |
| empId | int |
| bonus | int |
empId 是该表具有唯一值的列。empId 是 Employee 表中 empId 的外键(reference 列)。该表的每一行都包含一个员工的 id 和他们各自的奖金。
我那不值一提的想法:
首先分析所给的两张表,第一张是员工表,记录了员工的id,姓名,以及经理和他们的工资,第二张是奖金表,记录了员工id,和第一张表中的员工id一样,奖金记录了员工的奖金。其次分析需求,需要找到奖金少于1000的员工的姓名和奖金数额,第一个想法就是需要将两张表连接起来,然后条件bonus< 1000.同时注意这道题需要显示没有奖金的员工,所以直接bonus is null。
select e.name,b.bonus
from Employee e
left join Bonus b
on e.empId = b.empId
where b.bonus < 1000 or bonus is null
结果:
总结:
能运行就行。

940

被折叠的 条评论
为什么被折叠?



