详解力扣高频 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;
相关推荐
自信的小螺丝钉4 小时前
Leetcode 146. LRU 缓存 哈希表 + 双向链表
leetcode·缓存·散列表
歪歪10011 小时前
如何在SQLite中实现事务处理?
java·开发语言·jvm·数据库·sql·sqlite
瑶总迷弟11 小时前
静默安装 Oracle Database 21c on CentOS 7.6
数据库·oracle·centos
纷飞的花火丶12 小时前
Oracle数据库注入基础入门
网络安全·oracle·sql注入
博睿谷IT99_12 小时前
SQL SELECT 语句怎么用?COMPANY 表查询案例(含条件 / 模糊 / 分页)
数据库·sql·mysql
2351612 小时前
【LeetCode】3. 无重复字符的最长子串
java·后端·算法·leetcode·职场和发展
鸠摩智首席音效师13 小时前
如何删除 MySQL 数据库中的所有数据表 ?
数据库·mysql·oracle
没有bug.的程序员13 小时前
SQL 执行计划解析:从 EXPLAIN 到性能优化的完整指南
java·数据库·sql·性能优化·explain·执行计划
微笑尅乐13 小时前
神奇的位运算——力扣136.只出现一次的数字
java·算法·leetcode·职场和发展
小心草里有鬼13 小时前
Linux 数据库 Mysql8 主从复制
linux·运维·数据库·sql·mysql