LeetCode: 183. Customers Who Never Order
LeetCode: 183. Customers Who Never Order
题目描述
Suppose that a website contains two tables, the Customers
table and the Orders
table. Write a SQL query to find all customers who never order anything.
Table: Customers
.
+----+-------+
| Id | Name |
+----+-------+
| 1 | Joe |
| 2 | Henry |
| 3 | Sam |
| 4 | Max |
+----+-------+
Table: Orders
.
+----+------------+
| Id | CustomerId |
+----+------------+
| 1 | 3 |
| 2 | 1 |
+----+------------+
Using the above tables as example, return the following:
+-----------+
| Customers |
+-----------+
| Henry |
| Max |
+-----------+
解题思路
将 Customers
和 Orders
表进行 左外连接, 其中 CustomerId
为 null
的行对应的客户就是没有下过订单的用户。
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。
在使用LEFT OUTER JOIN
时,ON
和WHERE
条件的区别如下:
1、ON
条件是在生成临时表时使用的条件,它不管ON
中的条件是否为真,都会返回左边表中的记录。
2、WHERE
条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有LEFT OUTER JOIN
的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
AC 代码
SELECT Name AS Customers
FROM Customers LEFT OUTER JOIN Orders
ON Customers.Id = Orders.CustomerId WHERE Orders.CustomerId is null
LeetCode: 183. Customers Who Never Order相关推荐
- leetcode 183. Customers Who Never Order
题意:查找没有点过单的客人 题目链接:https://leetcode.com/problems/customers-who-never-order/ select Name from Custome ...
- Leetcode#183. Customers Who Never Order
题目描述:查找没有预定(orders)的顾客(customers) 普通方法: select Name as Customers from Customers c where c.Id not in ...
- LeetCode:183.Customers Who Never Order
题目: Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQ ...
- 【Leetcode】Customers Who Never Order
题目链接:https://leetcode.com/problems/customers-who-never-order/ 题目: Suppose that a website contains tw ...
- 183. Customers Who Never Order
原题链接:https://leetcode.com/problems/customers-who-never-order/description/ 做完这道题目我才发现,我跟不就不懂 in, exis ...
- 183. Customers Who Never Order没有下过订单的顾客MySQL
假设一个网站包含两个表,Customers表和Orders表.编写SQL查询以查找所有没订购任何商品的客户. customers orders Output 用到left outer join: s ...
- [SQL]LeetCode183. 从不订购的客户 | Customers Who Never Order
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- LeetCode: 107. Binary Tree Level Order Traversal II
题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...
- LeetCode 107. Binary Tree Level Order Traversal II
LeetCode 107. Binary Tree Level Order Traversal II Solution1:我的答案 比102那道题多了一行代码... /*** Definition f ...
最新文章
- python 的* 代表元组 和**代表字典用法
- android中常用的快捷键
- 【Android 安全】DEX 加密 ( Application 替换 | 分析 Activity 组件中获取的 Application | ActivityThread | LoadedApk )
- 成功解决AttributeError: module tensorflow.sets has no attribute intersection
- 运算符重载(加减运算符、前置加加(减减)后置加加(减减)运算符、赋值运算符、输入输出运算符、关系运算符、函数调用)
- KUDU--秒级查询的数据仓库
- 测试设备和Android机怎么传递消息,如何检测设备是Android手机还是Android平板电脑?...
- 为什么游戏开发者不玩游戏_什么是游戏开发?
- 线性代数学的中国根源
- vue服务端渲染添加缓存
- php读取操作大文件
- 句句真研—每日长难句打卡Day12
- 机器视觉光源之LED光源
- python自学行吗-大家觉得自学python多久能学会?
- HTML- 锚点实例
- SQL Server表空间碎片化回收
- 江苏大学计算机学院换届,关于计算机学院各支部选举结果的批复
- win10文件夹全屏的快捷键
- 基于华为高端NAS存储双活的POC测试
- Django models中的null和blank的区别
热门文章
- Excel表格中重要的数据如何隐藏不显示
- 微信公众号考试成绩查分系统
- Sources for ‘Android API 32 Platform’ not found
- FreeCAD Addon Manager的Workbenches为空的解决方法
- 1060驱动java_ubuntu16.04 安装 GTX 1060 显卡驱动
- 旅行青蛙南の旅旅行券_旅行时查找WiFi
- Jmeter读取CSV文件
- opencv位运算,cv2.bitwise_and,cv2.bitwise_or,cv2.bitwise_not,cv2.bitwise_xor
- kry loves 2048
- 传iPhone8将搭载裸眼3D技术