SQL架构

某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。

Customers 表:

+----+-------+
| Id | Name  |
+----+-------+
| 1  | Joe   |
| 2  | Henry |
| 3  | Sam   |
| 4  | Max   |
+----+-------+

Orders 表:

+----+------------+
| Id | CustomerId |
+----+------------+
| 1  | 3          |
| 2  | 1          |
+----+------------+

例如给定上述表格,你的查询应返回:

+-----------+
| Customers |
+-----------+
| Henry     |
| Max       |
+-----------+
select customers.name as Customers from customers left join  orders on customers.id=orders.customerid where orders.customerid is null

这个sql用了左连接 和 is null语法。

左连接的这种用法学习到了。如果右边的表没有满足on 后条件的值就会为null

下面贴一个左连接执行顺序的讲解

执行顺序:先执行on and条件,再执行where条件

具体是:首先根据on and条件过滤出满足条件的右侧表记录,然后根据关联字段,左侧表再与过滤出的右侧表记录进行连接,

满足关联字段相等,则返回左侧表和右侧表字段信息;若不满足,则返回左侧表字段信息,右侧表字段则显示NULL。

连接出的结果则存入临时表中。最后where条件是对临时表中的数据进行过滤。

左连接:Left join,以左侧表为主,不管on条件是否满足条件,左侧表的所有记录都会返回。

换句说:on and后面的条件对左侧表没有过滤作用,即使加上对左侧表的过滤,也不起作用。

on后面的条件对右侧表的过滤起作用。where条件则对左连接后的临时表数据进行筛选。

以例子说明:

select * from A left join B

on A.ID = B.ID and B.NAME = '连接' and A.NAME = ‘左连接’

where NAME = '左连接'

on and后面的条件:B.NAME对B表有过滤作用,A.NAME对A表不起过滤作用

where后面的条件:则是对左连接出的临时表数据进行过滤

转载于:https://www.cnblogs.com/wangshaowei/p/11074665.html

sql 183. 从不订购的客户相关推荐

  1. 「力扣数据库」183. 从不订购的客户(第五天)

    183. 从不订购的客户 题目 解题 题目 题目难度:简单 某网站包含两个表,Customers 表和 Orders 表.编写一个 SQL 查询,找出所有从不订购任何东西的客户. Id Name 1 ...

  2. 182. 查找重复的电子邮箱 183. 从不订购的客户

    文章目录 一.182. 查找重复的电子邮箱 二.解决方法 1.GROUP BY+HAVING 2.GROUP BY+子查询 三.183. 从不订购的客户 一.182. 查找重复的电子邮箱 编写一个 S ...

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

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

  4. 文巾解题 183. 从不订购的客户

    1 题目描述 2 解题思路 子查询找订了东西的用户 SELECT Name AS Customers FROM Customers WHERE ID NOT IN(SELECT CustomerIdF ...

  5. 【LeetCode-SQL每日一题】——183. 从不订购的客户

  6. 2022-12-01:从不订购的客户。找出所有从不订购任何东西的客户,以下数据的答案输出是Henry和Max,sql语句如何写? DROP TABLE IF EXISTS `customers`; C

    2022-12-01:从不订购的客户.找出所有从不订购任何东西的客户,以下数据的答案输出是Henry和Max,sql语句如何写? DROP TABLE IF EXISTS `customers`; C ...

  7. leetcode183. 从不订购的客户(SQL)

    某网站包含两个表,Customers 表和 Orders 表.编写一个 SQL 查询,找出所有从不订购任何东西的客户. Customers 表: +----+-------+ | Id | Name ...

  8. LeetCode(183)—— 从不订购的客户(MySQL)

    某网站包含两个表,Customers 表和 Orders 表.编写一个 SQL 查询,找出所有从不订购任何东西的客户. Customers 表: Id Name 1 Joe 2 Henry 3 Sam ...

  9. LeetCode-183. 从不订购的客户( Customers Who Never Order)。

    某网站包含两个表,Customers 表和 Orders 表.编写一个 SQL 查询,找出所有从不订购任何东西的客户. Customers 表: +----+-------+ | Id | Name ...

  10. 数据库题目 - 从不订购的客户

    文章目录 1. 题目描述 2.解答 1. 题目描述 某网站包含两个表,Customers 表和 Orders 表.编写一个 SQL 查询,找出所有从不订购任何东西的客户. Customers 表: ± ...

最新文章

  1. 2019北京高考分数分布一览表(成绩分布统计)
  2. ORACLE创建用户,建表空间,授予权限
  3. 【渝粤题库】国家开放大学2021春1373特殊教育概论题目
  4. Cortex-M0(5)---Cortex-M0【中断向量表】【中断控制和系统控制
  5. c#中用声音提示报警
  6. c语言作业及参考答案,C语言试题及答案
  7. maven项目中操作mysql数据库案例
  8. 华为交换机配置时区_把华为交换机设置成时钟源服务器(NTP)
  9. Cocos2d-X开发中国象棋《八》走棋
  10. Dreamweaver网页设计与制作100例:用DIV+CSS技术设计的书法主题网站(web前端网页制作课作业)...
  11. linux ftp下载geo,GEO数据下载及处理详细过程
  12. Addon SuperEdge 让原生 K8s 集群可管理边缘应用和节点
  13. 点击按钮变灰并开始倒计时60秒
  14. 图表点编辑数据无反应_解决word2013中插入图表之后无法保存和无法调出图表的编辑数据问题...
  15. 微信录音arm格式转换为mp3(亲测解决 Java linux centos 环境)
  16. 交换机基础命令(理解交换机基本工作原理)
  17. [论文笔记] 大型车牌检测数据集CCPD 阅读笔记
  18. 如何安装和使用A-ops工具?
  19. 如何从零设计一种物联网组网协议
  20. C#静默打印 PDF

热门文章

  1. 电子书下载:[FBI教你破解身体语言].(美)乔·纳瓦罗.(美)马文·卡尔林斯.文字版...
  2. linux学习(3)——vim文本编辑工具
  3. SSL协议之数据加密过程详解
  4. CF 71C. Round Table Knights
  5. 牛腩购物网25:购物车的实现
  6. spring3.1.0 jar包详解说明
  7. db.serverStatus()
  8. php使用RabbitMQ
  9. 数据可视化:CSV格式,JSON格式
  10. Python cannot import name 'Line' from 'pyecharts'