博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
access中求两表差集问题
阅读量:7193 次
发布时间:2019-06-29

本文共 828 字,大约阅读时间需要 2 分钟。

1)ACCESS数据库查询对象,一次只允许运行一条SQL语句,而题主的查询截图里有两条SQL语句,这样自然就会报错。

2)删除B表中与A表中字段ID相同的记录,请参考下列SQL语句:

1
2
delete 
from 
where 
exists 
(
select 
from 
from 
where 
A.ID=B.ID);

3)求A表中与B表的差集(非交集)

写法一, 利用非存在子句进行判断筛选

1
2
select 
from 
where 
not 
exists 
(
select 
from 
where 
B.ID=A.ID)

写法二 ,利用左连接出现的空值进行判断筛选(这里假设两表的字段ID都是唯一的,否则B表得实施去除重复项操作)

1
select 
A.* 
from 
left 
join 
on 
A.ID=B.ID 
where 
B.ID 
is 
null
;

注意:

写法一,在ID字段有索引的情况下运行效率很高,可作为首选使用,但是如果没有索引可利用的话,在大数据表的情况下运行效率很渣,应避免使用,这时推荐所使用写法二。

写法二 ,在有索引的情况下运行速度要比写法一慢。但是在没索引可利用时,碰到大数据表,其运行效率要比写法一好很多。

 
追问
1 小时前

抱歉因为我真的没任何基础 还想确认一下 我求B-A 也就是图中红色的部分 字段没有索引 直接输入你给的3)中的写法二就可以是吗 麻烦您了

 
追答
29 分钟前
那就得A、B表反过来写,也就是求B表中与A表的非交集。 select B.* from B left join A on B.ID=A.ID where A.ID is null; 如果表名和字段名与实际不一致,上述语句中的表名和字段名换成实际的名字就可以了。 直接在access查询向导中做就可以了

 

 

转载于:https://www.cnblogs.com/xiaobaohuizi/p/8871157.html

你可能感兴趣的文章
跨平台即时通讯解决方案
查看>>
IT运维面临网络缓慢的解决方法
查看>>
linux系统日志解析
查看>>
DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity,
查看>>
硅谷课程 | 系统设计的基本方法SNAKE原则
查看>>
泰国取消国家数据中心建设计划
查看>>
富士通推新型RFID标签WT-A522L,适用于时尚服装和配件
查看>>
微软:10台Windows 10 PC已有8台已升一周年更新
查看>>
《UNIXLinux程序设计教程》一2.5 文件定位
查看>>
干货满满,阿里天池CIKM2017 Rank4比赛经验分享
查看>>
全闪存不是早买早亏
查看>>
成为更优秀的程序员:退后一步看问题
查看>>
蓝屏死机”再见?Win10 正测试“绿屏”死机
查看>>
外媒称 Android 7.0 当中加入了指纹手势
查看>>
在 GitHub 上,女性提交的代码更可能被接受
查看>>
如何配置struts+hibernate,基本使用方法
查看>>
《OpenStack云计算实战手册(第2版)》一2.7 租户间共享镜像
查看>>
熬夜并不值得程序员炫耀
查看>>
《思科数据中心I/O整合》一2.8 基于优先级的流量控制(PFC)
查看>>
Hadoop 这样业界顶级的大规模数据处理平台,均发现满足不了类似双十一这样全世界的剁手党蜂拥而至的热情...
查看>>