如何理解 select * from B where (select count(1) as num from A where A.ID = B.ID) = 0
如何理解 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相关推荐
- 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 ...
- SQL Server中SELECT会真的阻塞SELECT吗?
在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.T ...
- 彻底解释Linux select的1024限制(select真的受1024限制吗?不!)
很多很多年前,我被面试 为什么select调用最多只支持1024个文件描述符? 我没有答出来,我甚至不知道select到底是干什么的. 又过了很多年,我用这个问题面试了别人- 在当时,我心里已经有了会 ...
- mysql select表达式_MySQL数据库SELECT查询表达式解析
数据的管理在很大一部分是在进行查找工作,而SELECT占据了很大的一部分 SELECT select_expr [,select_expr...] [ FROM table_reference WHE ...
- CSS-解决苹果点击高亮、安卓select灰色背景(select下拉框在IOS中背景变黑、出现阴影问题)
CSS-解决苹果点击高亮.安卓select灰色背景(select下拉框在IOS中背景变黑.出现阴影问题) 参考文章: (1)CSS-解决苹果点击高亮.安卓select灰色背景(select下拉框在IO ...
- select sqlite 唯一_SQLite Select 语句
SQLite Select 语句 SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据.这些结果表也被称为结果集. 语法 SQLite 的 SELECT ...
- Thymeleaf select 使用 和多select 级联选择
1.使用select 并且回绑数据; 页面: 状态: <select name="status" th:field="*{status}" id=&quo ...
- mysql select符合查询_MySQL SELECT 联合查询
这里主要分享一下联合查询的用法. MySQL使用UNION和UNION ALL实现数据的联合查询. 假设有以下两个表: mysql>select * from staff; +----+---- ...
- mysql 多个select查询_MySQL的select多表查询
select 语句: select 语句一般用法为: select 字段名 from tb_name where 条件 ; select 查询语句类型一般分为三种: 单表查询,多表查询,子查询 最简单 ...
最新文章
- mutations vuex 调用_Vuex源码学习(六)action和mutation如何被调用的(前置准备篇)...
- 9个让PyTorch模型训练提速的技巧!
- 零基础不建议学前端_web前端开发零基础怎样入门-哈尔滨前端学习
- 浅析SQL Server 2005中的主动式通知机制
- Bootstrap FileInput(文件上传)中文API整理
- AI应用开发基础傻瓜书系列3-激活函数和损失函数
- Linux下Tomcat死活找不到JSP页面中import指定类的解决方法
- 小爱音箱 电脑 麦克风_外观全面升级,小米小爱音箱Art体验
- python下载豆丁文档_.NET - edu.docin.com豆丁校园
- PID控制算法原理学习
- 计算机mc代表什么意思6,我的世界:萌新无法理解的6个老梗,唯老MC才懂!你能看懂几个?...
- 温度报警器c语言课程设计,综合电子设计课程设计实验报告-可调温度报警器.doc...
- 微信小程序采坑四:下拉刷新不回弹
- “唯一艺术数字藏品“小程序被下架,数字藏品服务边界在哪
- 1231:最小新整数
- Python 实例教学_ 04_排序
- 平面设计师培训机构的课程都有哪些?平面设计课程内容。
- 基于SAML的单点登录介绍
- 充电桩用linux系统吗,基于嵌入式Linux的电动汽车交流充电桩的设计
- 网络安全领域中八大类CISP证书