前言
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
今日题目:
584.寻找用户推荐人
表:Customer
| 列名 | 类型 |
|---|---|
| PersonId | int |
| id | int |
| name | varchar |
| referee_id | int |
在 SQL 中,id 是该表的主键列。该表的每一行表示一个客户的 id、姓名以及推荐他们的客户的 id。
找出那些没有被 id = 2 的客户推荐的客户的姓名
以任意顺序返回结果表。
我那不值一提的想法:
首先看表,该题只有一个顾客表,分别记录了客户的id,姓名,以及他们的推荐人,其次分析一下需求,找到id = 2 的客户推荐的客户的姓名,我们需要找推荐id不是2的客户id,也就是 referee_id <> 2,但是我们可以看到查询表中的referee_id是有空值的,并且我们的结果表中,也显示了空值客户,所以我们同时也要考虑空值客户,也就是referee_id is null。所以最后结果就是 referee_id <> 2 or referee_id is null.
select name
from Customer
where referee_id <> 2
or referee_id is null
结果:
总结:
能运行就行。

940





