持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第30天,点击查看活动详情
leetcode刷题514-寻找用户推荐人
前文
本文内容主要是leetcode中数据库类型的刷题,主要是考察数据库查询时的操作处理。本文选择的执行方式可能不是最佳方案。本题目的链接为:leetcode.cn/problems/fi…
题目信息
给定表 customer ,里面保存了所有客户信息和他们的推荐人。
+------+------+-----------+
| id | name | referee_id|
+------+------+-----------+
| 1 | Will | NULL |
| 2 | Jane | NULL |
| 3 | Alex | 2 |
| 4 | Bill | NULL |
| 5 | Zack | 1 |
| 6 | Mark | 2 |
+------+------+-----------+
写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。
题目分析
本题目内容主要是对于数据库查询知识的考查。根据题目中的内容,我们在表中已经被提供了用户名、id以及客户的对应推荐人的信息。而根据题目的要求来说,需要我们从给定的数据表数据中进行查询,返回一个客户列表,列表要求客户的推荐人编号不是2。根据要求来分析,数据库中用户的推荐人为1,2以及空值三种情况。第一想法肯定是直接采用条件查询语句,只要推荐人不为2即可。但是由于空值的特殊性,如果我们直接在条件语句中设置条件不等于2,结果只能查找到推荐人为1的客户信息,会遗漏推荐人空值的情况。因此来说,我们需要通过or关系的关联,增加查询语句中推荐人为空的信息进行组合。也就是查询条件中包含两种情况,即可查询到所有推荐人不为2的客户信息结果。到这个位置,也就满足了题目对于答案的结果要求,实现了结果的实际查询。
解题答案及结果
select name from customer
where referee_id != '2' or referee_id is null
后记
- 千古兴亡多少事?悠悠。不尽长江滚滚流。