SQL语句理解 select * from B where (select count(1) as num from A where A.ID = B.ID) = 0

select*fromBwhere(selectcount(1)asnumfromAwhereA.ID=B.ID)=0请问如何理解,为什么可以在B表中排除A表的数据... select * from B where (select count(1) as num from A where A.ID = B.ID) = 0
请问如何理解,为什么 可以在B表中 排除A表的数据
展开
 我来答
jingjingkuku
推荐于2018-02-26
知道答主
回答量:13
采纳率:100%
帮助的人:7万
展开全部
假设个例子吧:A表
id 姓名 性别
00 aa 女
01 bb 女
02 cc 女

B表
id 姓名 性别
00 aa 女
02 cc 女
03 dd 男
select * from B是执行B表,
当执行id=‘00’时 ,因为select count(1) as num from A where A.ID = B.ID 不等于0 所以运行结果没有第一行id=‘00’,
当执行id=‘02’时,因为select count(1) as num from A where A.ID = B.ID 不等于0 所以运行结果没有第二行id=‘02’,
当执行id= ‘03’时,因为select count(1) as num from A where A.ID = B.ID 的结果等于0 ,符合条件,所以运行结果会有第三行。
运行结果为:
id 姓名 性别
03 dd 男
所以:可以在B表中 排除A表的数据。
百度网友ffdad71
2018-03-30 · TA获得超过1.6万个赞
知道小有建树答主
回答量:78
采纳率:100%
帮助的人:1.1万
展开全部

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

一、SQL语句简介:SQL 全名是结构化查询语言(Structured Query Language),是用于数据库中的标准数据查询语言,IBM 公司最早使用在其开发的数据库系统中。1986年10月,美国国家标准学会(ANSI) 对 SQL 进行规范后,以此作为关系式数据库管理系统的标准语言 (ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对 SQL 规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。

二、SQL功能:

1、数据定义功能:SQL的数据定义功能通过数据定义语言(Data Definition Language,DDL)实现,他用来定义数据库的逻辑结构,包括定义基表、视图和索引。基本的DDL包括三类,即定义、修改和删除,分别对应CREATE、ALTER和DROP三条语句。

2、 数据查询功能:SQL的数据查询功能通过数据查询语言(Data Query Language,DQL)实现,它用来对数据库中的各种数据对象进行查询,虽然近包括查询一种操作(SELECT语句),但在SQL语言中,它是使用频率最高的语句。查询语句可以有讯多自救组成,使用不同的语句便可以进行查询、统计、分组、排序等操作,从而实现选择、投影和连接等运算功能,以获得用户所需的数据信息。

3、 数据操作功能:SQL的数据操纵功能通过数据操作语句(Data Manipulation Language,DML)实现,它用于改变数据库中的数据,数据更新包括插入、删除和修改三种操作,分别对应INSERT、DELETE和UPDATE三条语句。

4、数据控制功能:数据库的控制值数据库的安全性和完整性控制。SQL的数据控制功能通过数据控制语言(Data Control Language,DCL)实现,它包括对基表和视图的授权、完整性规则的描述以及事物开始和结束等控制语句。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BuddhaQQ
2012-12-20 · TA获得超过1762个赞
知道小有建树答主
回答量:860
采纳率:100%
帮助的人:974万
展开全部
子查询中select count(1) as num from A where A.ID = B.ID
就是统计B表和A表用ID连接的行数
子查询的行数=0,就可以实现从B表中排除A表数据
更多追问追答
追问
子查询只是把计数传过去啊 主查询如何得知具体数据行?
追答
nono, 
这么看:
select * from B where ?= 0
where中条件其实是,什么等于0?
代入
(select count(1) as num from A where A.ID = B.ID)
就是A和B通过ID连接后,COUNT(*)计数=0
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6e19d3b
2018-12-11
知道答主
回答量:1
采纳率:0%
帮助的人:789
展开全部
mm,count(1) as cc,avg(money) as av
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式