一个数据库中有两个表,如何删除1表中与2表相同的数据

我的想用VB编写一个程序,VB连接的是MDB数据库,现在有问题是如何将一个数据库中的两个表(a表和b表)删除a表中与b表相同的数据。我现在只能删除a表中与B表的第一行相同的数据。其余的数据没办法删除(关键是想保留B表!)

数据库中删除两张表相同的数据要根据id相同来删除。

解决办法:
1、在设计数据库表时,通过设置级联删除操作来完成。
2、可以写触发器完成操作。
3、先删除主表的数据行,然后根据关联的外键值来删除附表中的相应行数据即可。

具体方法:
作为外键暂且叫它主表,Delete from Main Where id=@id
则要先删除子表当中 Delete from Detail where MainId = @id
为了保证数据完整性,最好将上面的操作包含在一个事务中,如果两个语句影响的行数都大于零,则提交,否则回滚。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-16
假设a,b两表的主键名称为FID
delete from a where fid in (select fid from b)本回答被提问者采纳
第2个回答  2010-10-27
用sql链接语句,先从b表取出第一条记录,然后去a表中找相同的记录,找到就删除该记录,再从B表取第二条记录,再去a表中找相同记录,删除它,直到b表中记录找完。
第3个回答  2010-10-27
a表中与b表相同的数据 所有的字段的值都相同还是说 只有个别的字段值相同的
第4个回答  推荐于2018-10-12
描述的不是很清楚,什么样的是相同数据?

写个sql供你参考

delete
from a
inner join b on a.x1=b.x1 and a.x2=b.x2 --这里是判断相同得的条件本回答被网友采纳
相似回答