当前位置: 首页 > article >正文

SQL-leetcode-584. 寻找用户推荐人

584. 寻找用户推荐人

表: Customer

±------------±--------+
| Column Name | Type |
±------------±--------+
| id | int |
| name | varchar |
| referee_id | int |
±------------±--------+
在 SQL 中,id 是该表的主键列。
该表的每一行表示一个客户的 id、姓名以及推荐他们的客户的 id。
找出那些 没有被 id = 2 的客户 推荐 的客户的姓名。

以 任意顺序 返回结果表。

结果格式如下所示。

示例 1:

输入:
Customer 表:
±—±-----±-----------+
| id | name | referee_id |
±—±-----±-----------+
| 1 | Will | null |
| 2 | Jane | null |
| 3 | Alex | 2 |
| 4 | Bill | null |
| 5 | Zack | 1 |
| 6 | Mark | 2 |
±—±-----±-----------+
输出:
±-----+
| name |
±-----+
| Will |
| Jane |
| Bill |
| Zack |
±-----+

题解

找出那些 没有被 id = 2 的客户 推荐 的客户的姓名。
where 就行,但要考虑一点就是没有推荐人的情况,null是不能用来比较的

方法一 where

select name from Customer where referee_id <> 2 or referee_id is null

方法二 where + ifnull

select name from Customer where ifnull(referee_id,0) <> 2

方法三 exists

逆向思维,把推荐人是2的拿出来,通过not exists来实现

-- 判断c1 表的数据,不存在c2白哦中
select name from Customer c1 where 
not exists(
    select name from (
    select * from Customer where referee_id = 2
) c2 
where c1.id = c2.id
-- where c1.referee_id = c2.referee_id
)
emmm,其他,先这样吧

http://www.kler.cn/a/500191.html

相关文章:

  • 阿里云-Centos9-安装Docker-配置镜像拉取加速地址-开机自启
  • 网络安全行业规划,零基础如何入门网络渗透?
  • 拥抱HarmonyOS之高效使用DevEco
  • 中阳智能量化交易模型:科技驱动的投资革命
  • linux网络 | https前置知识 | 数据加密与解密、数据摘要
  • 继续坚持与共勉
  • openstack下如何生成centos9 centos10 和Ubuntu24 镜像
  • Linux 免杀
  • leetcode 483. 最小好进制
  • 《Opencv》图像的旋转
  • Android车机DIY开发之学习篇(五)默认应用修改
  • 【网络安全 SOC】痛苦金字塔 Pyramid Of Pain
  • python中无法引入pil怎么解决
  • Openstac持久存储之块存储cinder
  • 机器学习之决策树的分类树模型及决策树绘制
  • [sparkstreaming]java.lang.NoSuchMethodError:错误以及更改
  • DSP+Simulink——点亮LED灯(TMSDSP28379D)超详细
  • 秒懂虚拟化(二):服务器虚拟化、操作系统虚拟化、服务虚拟化全解析,通俗解读版
  • 利用Python实现Union-Find算法
  • 汽车氛围灯静电浪涌的难点
  • conda相关操作