183. 从不订购的客户

183. 从不订购的客户

题目-简单难度

Customers 表:

Column Name Type
id int
name varchar

在 SQL 中,id 是该表的主键。

该表的每一行都表示客户的 ID 和名称。

Orders 表:

Column Name Type
id int
customerId int

在 SQL 中,id 是该表的主键。

customerId 是 Customers 表中 ID 的外键( Pandas 中的连接键)。

该表的每一行都表示订单的 ID 和订购该订单的客户的 ID。

找出所有从不点任何东西的顾客。

以 任意顺序 返回结果表。

结果格式如下所示。

示例

示例 1:

输入:

Customers table:

id name
1 Joe
2 Henry
3 Sam
4 Max

Orders table:

id customerId
1 3
2 1

输出:

Customers
Henry
Max

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/summary-ranges
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

1.

时间

323ms

击败 89.62%使用 MySQL 的用户

内存

0.00MB

击败 100.00%使用 MySQL 的用户

sql 复制代码
-- 从Customer表中选择name列作为返回结果
SELECT c.name AS "Customers"
FROM Customers c
-- 使用LEFT JOIN将Customers表与Orders表关联
LEFT JOIN Orders o ON c.Id = o.CustomerId
-- 筛选没有订单的客户
WHERE o.CustomerId IS NULL

2.

时间

455ms

击败 37.75%使用 MySQL 的用户

内存

0.00MB

击败 100.00%使用 MySQL 的用户

sql 复制代码
-- 从Customer表中选择name列作为返回结果,重命名为Customers
SELECT c.name AS "Customers"
FROM Customers c
-- 主查询选择子查询结果中没有出现的客户
WHERE c.id not in
-- 子查询返回Orders表中的customerid
(SELECT customerid FROM Orders)

3.

时间

324ms

击败 88.91%使用 MySQL 的用户

内存

0.00MB

击败 100.00%使用 MySQL 的用户

sql 复制代码
-- 从Customer表中选择name列作为返回结果
SELECT c.name AS "Customers"
FROM Customers c

-- 使用LEFT JOIN将Customers表与Orders表关联
LEFT JOIN orders o ON c.id = o.customerId

-- 仅选择Orders表中id列为NULL的行,表示这些行没有对应的订单
WHERE ISNULL(o.id);
相关推荐
上海云盾商务经理杨杨10 小时前
Web渗透核心漏洞:SQL注入漏洞测试与修复实战
数据库·sql·安全
流年如夢10 小时前
单链表Ⅲ(LeetCode)
数据结构·算法·leetcode·职场和发展
Irene199111 小时前
(课堂笔记)游标与动态SQL(EXECUTE IMMEDIATE):使用 CHR(39) 替代拼接单引号
sql
消失的旧时光-194312 小时前
SQL 第四篇:JOIN 实战(数据库到底是怎么“拼表”的)
数据库·sql·mysql
mask哥12 小时前
力扣算法java实现汇总整理(下)
java·算法·leetcode
样例过了就是过了13 小时前
LeetCode热题100 编辑距离
数据结构·c++·算法·leetcode·动态规划
khalil102013 小时前
代码随想录算法训练营Day-46 动态规划13 | 647. 回文子串、516.最长回文子序列、动态规划总结
数据结构·c++·算法·leetcode·动态规划·回文子串·回文子序列
he___H14 小时前
算法快与慢--哈希+双指针
算法·leetcode·哈希算法
秋915 小时前
MySQL 8.0.46 与 MySQL 9.7.0在sql语句方面的区别并举例说明
数据库·sql·mysql
凯瑟琳.奥古斯特15 小时前
力扣2760 C++滑动窗口解法
数据结构·c++·算法·leetcode·职场和发展