如何理解 select * from B where (select count(1) as num from A where A.ID = B.ID) = 0

为什么 可以在B表中 排除A表的数据

假设个例子吧:A表
id 姓名 性别
00 aa 女
01 bb 女
02 cc 女

B表
id 姓名 性别
00 aa 女
02 cc 女
03 dd 男

select * from B是执行B表;

count(1) 表示统计表中符合where条件的所有的记录数,不会忽略NULL,包含字段为null 的记录;

as num就是定义了字段名是num,并且将得到结果放到字段NUM中;

select * from B where ?= 0 where中条件其实是,什么等于0?

代入 (select count(1) as num from A where A.ID = B.ID) 就是A和B通过ID连接后,COUNT(*)计数=0;

当执行id=‘00’时 ,A表和B表中有相同的值,因此select count(1) as num from A where A.ID = B.ID  的执行结果  自定义字段num不等于0,  所以运行结果没有第一行id=‘00’,

当执行id=‘02’时,A表和B表中有相同的值,因此select count(1) as num from A where A.ID = B.ID 的执行结果   自定义字段num不等于0, 所以运行结果没有第二行id=‘02’,

执行id= ‘03’时,A表和B表中没有相同的值,因此select count(1) as num from A where A.ID = B.ID 的执行结果,自定义字段num等于0 ,符合条件,所以运行结果会有第三行。
运行结果为:
id 姓名 性别
03 dd 男
所以:可以在B表中 排除A表的数据。

select * from B where (select count(1) as num from A where A.ID = B.ID) = 0

整个语句的意思就是统计B表和A表用ID连接的行数,子查询的行数num=0,就可以实现从B表中排除A表数据。

如何理解 select * from B where (select count(1) as num from A where A.ID = B.ID) = 0相关推荐

  1. Oracle - SELECT 1 FROM table; SELECT COUNT(1) FROM table;

    SELECT 1 SELECT 1 FROM table SELECT anyColumn FROM table SELECT * FROM table 效率上:1 > anyColumn &g ...

  2. SQL Server中SELECT会真的阻塞SELECT吗?

    在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.T ...

  3. 彻底解释Linux select的1024限制(select真的受1024限制吗?不!)

    很多很多年前,我被面试 为什么select调用最多只支持1024个文件描述符? 我没有答出来,我甚至不知道select到底是干什么的. 又过了很多年,我用这个问题面试了别人- 在当时,我心里已经有了会 ...

  4. mysql select表达式_MySQL数据库SELECT查询表达式解析

    数据的管理在很大一部分是在进行查找工作,而SELECT占据了很大的一部分 SELECT select_expr [,select_expr...] [ FROM table_reference WHE ...

  5. CSS-解决苹果点击高亮、安卓select灰色背景(select下拉框在IOS中背景变黑、出现阴影问题)

    CSS-解决苹果点击高亮.安卓select灰色背景(select下拉框在IOS中背景变黑.出现阴影问题) 参考文章: (1)CSS-解决苹果点击高亮.安卓select灰色背景(select下拉框在IO ...

  6. select sqlite 唯一_SQLite Select 语句

    SQLite Select 语句 SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据.这些结果表也被称为结果集. 语法 SQLite 的 SELECT ...

  7. Thymeleaf select 使用 和多select 级联选择

    1.使用select 并且回绑数据; 页面: 状态: <select name="status" th:field="*{status}" id=&quo ...

  8. mysql select符合查询_MySQL SELECT 联合查询

    这里主要分享一下联合查询的用法. MySQL使用UNION和UNION ALL实现数据的联合查询. 假设有以下两个表: mysql>select * from staff; +----+---- ...

  9. mysql 多个select查询_MySQL的select多表查询

    select 语句: select 语句一般用法为: select 字段名 from tb_name where 条件 ; select 查询语句类型一般分为三种: 单表查询,多表查询,子查询 最简单 ...

最新文章

  1. mutations vuex 调用_Vuex源码学习(六)action和mutation如何被调用的(前置准备篇)...
  2. 9个让PyTorch模型训练提速的技巧!
  3. 零基础不建议学前端_web前端开发零基础怎样入门-哈尔滨前端学习
  4. 浅析SQL Server 2005中的主动式通知机制
  5. Bootstrap FileInput(文件上传)中文API整理
  6. AI应用开发基础傻瓜书系列3-激活函数和损失函数
  7. Linux下Tomcat死活找不到JSP页面中import指定类的解决方法
  8. 小爱音箱 电脑 麦克风_外观全面升级,小米小爱音箱Art体验
  9. python下载豆丁文档_.NET - edu.docin.com豆丁校园
  10. PID控制算法原理学习
  11. 计算机mc代表什么意思6,我的世界:萌新无法理解的6个老梗,唯老MC才懂!你能看懂几个?...
  12. 温度报警器c语言课程设计,综合电子设计课程设计实验报告-可调温度报警器.doc...
  13. 微信小程序采坑四:下拉刷新不回弹
  14. “唯一艺术数字藏品“小程序被下架,数字藏品服务边界在哪
  15. 1231:最小新整数
  16. Python 实例教学_ 04_排序
  17. 平面设计师培训机构的课程都有哪些?平面设计课程内容。
  18. 基于SAML的单点登录介绍
  19. 充电桩用linux系统吗,基于嵌入式Linux的电动汽车交流充电桩的设计
  20. 网络安全领域中八大类CISP证书

热门文章

  1. unity头顶状态制作_unity实现头顶血条
  2. 数据分析——Excel——透视表
  3. html5Canvas画圆
  4. canvas画圆、随机统计图以及清除画布
  5. Linux系统调用SYSCALL_DEFINE详解
  6. 数字转换成k,w单位
  7. 代码转换器 HTML2JS 代码
  8. Linux为什么使用CST时区,CST时区问题
  9. c type 笔记本 芯片方案_主流笔记本Type-C情况(持续更新)
  10. mv命令写错路径执行后,文件不见了~