SQL数据库中删除一个表在另一个表中不存在的记录?

比如表A和B,根据字段ID来判断,如果A.ID在B中,不存在,则删除此条记录,我用以下语句来删除,速度很慢,有没有方法能快速删除?
delete from A where ID not in
(select ID from B)

第1个回答  推荐于2017-12-28
1. 采用not exists 执行速度快delete from T_AD where not exists (select 1 from T_AD_PLAY where T_AD.N_CODE =T_AD_PLAY.N_CODE ) 2. 采用not in 执行速度慢Delete From T_AD Where N_AD Not In(Select N_AD From T_AD_PLAY)本回答被网友采纳
第2个回答  2015-08-11
delete from A where ID not in
(select distinct ID from B)追问

请问这是什么情况A表中记录4W多条,B表中记录1.8W条

本回答被网友采纳
第3个回答  2017-10-10
delete from A where not exists (select 1 from B where A.ID = b.ID)

写SQL语句,删除A表记录在B表不存在的数据
delete from T_AD where not exists (select 1 from T_AD_PLAY where T_AD.N_CODE =T_AD_PLAY.N_CODE )2. 采用not in 执行速度慢 Delete From T_AD Where N_AD Not In(Select N_AD From T_AD_PLAY)

SQL删除一个表不存在与另外一个表中的记录
delete from table_a where not exists (select 'x' from table_b b where table_a.id = b.id)

sql 中 两张关联表,如何做到只删除一张表,另一张表不受影响 例表a(nam...
方法1:delete 表a from 表a A join 表b B on A.name=B.name 方法2:delete from 表a where name in(select name from 表b)这样就可以删除表a中有表b中的Name相同的记录,而不影响表b中的内容

sql server删除主表的一条数据,外键表的数据全没了
--删除外键 alter table 表名 drop constraint 外简名

SQL数据库中 怎么删除一个表中的部分数据 这些数据是另一个表中的外码...
在外键表建立的时候需要定义外键允许“集联删除”。否则删除父表数据的时候,会报外键无法删除的错误。

SQL删除根据一个表的信息删除另一个表的记录
delete '临时表名' where (e,f,g) in(select b,c,d from Test);改成 delete '临时表名' where (e,f,g) in(select x.e,x.f,x.g from '临时表名' x,Test y where x.e=y.b and x.f=y.c and x.g=y.d)

sql 如何删除表中的记录,从另一表中取条件
sql中如果删除表中的记录,从另一表中取条件,那这两个表必须是主外键的关系:比如:create table AA (aaID int primary key,aaDate varchar(50),)create table BB (bbID int primary key,bbName varchar(50),bbaa int foreign key references AA(aaID ))假如AA有10条数据 ,BB有10条数据 ,...

SQL中如何将当前表记录添加进另一个表同时将当前表的记录删除?
两种方式:1、直接使用SQL语句,一句INSERT INTO TABLE …… FROM……2、在当前表中创建一个触发器,执行添加时删除本表中的数据

sql 存储过程 删除一个表中一条数据的同时删除另一个表中对应ID的多条...
存储过程不能实现,要写一个触发器,假设这两个表是tb_1,tb_2,删除表一,然后同时删除表二的内容 表一下面触发器的正文如下:declare @ID int \/\/声明一个局部变量 set @ID=(select ID from deleted) \/\/deleted是系统提供的一张表 delete from 表2 where ID=@ID 呵呵,共同学习 ...

sql语句删除一个表里的数据添加到另外一个表里面去
如果是自动的,就要写个触发器了,反正不管是手动还是自动都一样的方法。insert b select * from A where 条件 delete A where 条件 就行了。触发器的话,我也帮你写个吧~~Create trigger triggername A for delete as insert into B select * from deleted go 注意:deleted是个临时表~~~...

相似回答