如何能快速的删除表中的记录?

s5689412 2006-05-26 10:21:58
问题是这样的:现有两张表,两表中有一字段相同,其中一张表的记录比另外一张表记录多,现在需要根据相同的字段进行筛选,删除掉记录较多的那张表中的记录,我写的SQL如下:
delete from a where field not in (select a.field from a, b where a.field=b.field)
这条SQL可以执行,但是速度太慢了,在记录为3万6千多条和7千多条的两张表中执行,执行了15分钟,都还没有到一半,请SQL高手指点一下。
...全文
220 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2006-05-26
  • 打赏
  • 举报
回复
这样select到新表有什么用,再用新表对照着去删除旧表?这样分两步做还是会很慢的。
如果没有理解错的话,你是要将a.field<>b.field的记录删除,
剩下a.field=b.field的记录,用
SELECT A.* INTO NEWTABLE from a, b where a.field=b.field
即可到达目的,用NEWTABLE覆盖A即可。
s5689412 2006-05-26
  • 打赏
  • 举报
回复
TO wwwwb:
这样select到新表有什么用,再用新表对照着去删除旧表?这样分两步做还是会很慢的。
issgates 2006-05-26
  • 打赏
  • 举报
回复
关注
wwwwb 2006-05-26
  • 打赏
  • 举报
回复
换个思路:
SELECT A.* INTO NEWTABLE from a, b where a.field=b.field

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧