
access不重复记录以查询。以下以在学生表中查询在选修表中没有记录即没有选上课的学生为例。
1,打开该数据库,点击创建,查询向导,点击查找不匹配查询向导。
2,选择所有数据都在的那张表。即学生表。下一步
3,点击有些数据不在的那张表,即选修表。下一步
4,点击两张表都含有的字段。下一步
5,点击要显示的字段。
6,点击下一步。
7 ,点击确定,然后就可以看到结果了。
实现效果1 ,实质上是将表1中与表2无交集(非交集或称之为差集)的那些记录行予以删除,请运行下列SQL查询语句:delete from 表1 where not exists (select 1 from 表2 where 表2. 姓名=表1.姓名 and 表2.性别=表1.性别 and 表2.年龄=表1.年龄)
实现效果2,实质是将表2中与表1无交集的那些记录行追加到表1中,请运行下列sql查询语句:
insert into 表1(ID,姓名,性别,年龄) select 表2.ID,表2.姓名,表2.性别,表2.年龄 from 表2 where not exists (select 1 from 表1 where 表1.姓名=表2.姓名 and 表1.性别=表1.性别 and 表1.年龄=表2.年龄)
注意,如果ID字段是自增ID,请删除语句中的ID字段,如果ID字段不是自增id,则还要考虑是否有唯一索引约束。
另外,请注意因为上述两个语句需要实施not exist(非存在)检查,如果需要比对是否有重复的字段尚未设置索引而涉及的记录行又非常多时,那么可能会出现运行效率极差的状况,例如查询语句可能要运行数小时甚至更长时间才能返回结果,在运算得出结果前系统会处在假死状态,因此建议事先为相关的字段设置索好引,以规避遇到大数据表时发生效率悲剧。
题主要求的非代码方案基本没戏
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)