LeetCode刷题-数据库(MySQL)- 577.员工奖金

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;

你可能感兴趣的:(MySQL)