详解力扣高频 SQL 50 题之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。

算法(标准SQL)

查询客户表,满足推荐id为空或不为2,返回姓名。

代码(标准SQL)

sql 复制代码
select name
from Customer
where referee_id is null or referee_id !=2;
相关推荐
8Qi810 小时前
LeetCode 516:最长回文子序列
算法·leetcode·职场和发展·动态规划
cmes_love11 小时前
Level 2逐笔成交历史数据下载方法笔记
数据库·笔记·oracle
swordbob11 小时前
MySQL字符集陷阱:从Oracle迁移踩坑到utf8mb4强制规范
数据库·sql
十五年专注C++开发12 小时前
MySql中各种功能用sql语句实现总结
数据库·sql·mysql
小欣加油14 小时前
leetcode287寻找重复数
数据结构·c++·算法·leetcode
Gauss松鼠会15 小时前
【GaussDB】GaussDB重要通信参数汇总
服务器·网络·数据库·sql·性能优化·gaussdb·经验总结
IvorySQL15 小时前
PostgreSQL 技术日报 (6月9日)|PL/SQL 迁移自动化,前沿峰会即将启幕
sql·postgresql·自动化
NineData15 小时前
SQL 都在等锁时,ChatDBA 先帮 MySQL 找到谁在挡路
数据库·人工智能·sql·mysql·安全·数据复制·数据迁移工具
怪兽学LLM16 小时前
LeetCode 438 找到字符串中所有字母异位词(Python 固定滑动窗口+字符计数解法)
python·算法·leetcode
Gauss松鼠会16 小时前
【GaussDB】GaussDB SMP特性调优详解
java·服务器·前端·数据库·sql·算法·gaussdb