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       |
+-----------+

解题思路

CustomersOrders 表进行 左外连接, 其中 CustomerIdnull 的行对应的客户就是没有下过订单的用户。

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。
在使用 LEFT OUTER JOIN 时,ONWHERE 条件的区别如下:
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相关推荐

  1. leetcode 183. Customers Who Never Order

    题意:查找没有点过单的客人 题目链接:https://leetcode.com/problems/customers-who-never-order/ select Name from Custome ...

  2. Leetcode#183. Customers Who Never Order

    题目描述:查找没有预定(orders)的顾客(customers) 普通方法: select Name as Customers from Customers c where c.Id not in ...

  3. LeetCode:183.Customers Who Never Order

    题目: Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQ ...

  4. 【Leetcode】Customers Who Never Order

    题目链接:https://leetcode.com/problems/customers-who-never-order/ 题目: Suppose that a website contains tw ...

  5. 183. Customers Who Never Order

    原题链接:https://leetcode.com/problems/customers-who-never-order/description/ 做完这道题目我才发现,我跟不就不懂 in, exis ...

  6. 183. Customers Who Never Order没有下过订单的顾客MySQL

    假设一个网站包含两个表,Customers表和Orders表.编写SQL查询以查找所有没订购任何商品的客户. customers orders Output 用到left  outer join: s ...

  7. [SQL]LeetCode183. 从不订购的客户 | Customers Who Never Order

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  8. 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 ...

  9. LeetCode 107. Binary Tree Level Order Traversal II

    LeetCode 107. Binary Tree Level Order Traversal II Solution1:我的答案 比102那道题多了一行代码... /*** Definition f ...

最新文章

  1. python 的* 代表元组 和**代表字典用法
  2. android中常用的快捷键
  3. 【Android 安全】DEX 加密 ( Application 替换 | 分析 Activity 组件中获取的 Application | ActivityThread | LoadedApk )
  4. 成功解决AttributeError: module tensorflow.sets has no attribute intersection
  5. 运算符重载(加减运算符、前置加加(减减)后置加加(减减)运算符、赋值运算符、输入输出运算符、关系运算符、函数调用)
  6. KUDU--秒级查询的数据仓库
  7. 测试设备和Android机怎么传递消息,如何检测设备是Android手机还是Android平板电脑?...
  8. 为什么游戏开发者不玩游戏_什么是游戏开发?
  9. 线性代数学的中国根源
  10. vue服务端渲染添加缓存
  11. php读取操作大文件
  12. 句句真研—每日长难句打卡Day12
  13. 机器视觉光源之LED光源
  14. python自学行吗-大家觉得自学python多久能学会?
  15. HTML- 锚点实例
  16. SQL Server表空间碎片化回收
  17. 江苏大学计算机学院换届,关于计算机学院各支部选举结果的批复
  18. win10文件夹全屏的快捷键
  19. 基于华为高端NAS存储双活的POC测试
  20. Django models中的null和blank的区别

热门文章

  1. Excel表格中重要的数据如何隐藏不显示
  2. 微信公众号考试成绩查分系统
  3. Sources for ‘Android API 32 Platform’ not found
  4. FreeCAD Addon Manager的Workbenches为空的解决方法
  5. 1060驱动java_ubuntu16.04 安装 GTX 1060 显卡驱动
  6. 旅行青蛙南の旅旅行券_旅行时查找WiFi
  7. Jmeter读取CSV文件
  8. opencv位运算,cv2.bitwise_and,cv2.bitwise_or,cv2.bitwise_not,cv2.bitwise_xor
  9. kry loves 2048
  10. 传iPhone8将搭载裸眼3D技术