
sql删除多表多条件
比如从上到下分别为a.b.c表我想删除a表所有计费日期为‘2012年07月’跟‘2012年08月’的全部数据在删除的数据当中里面在删除b表‘id’列跟a表‘计费id列’一...
比如从上到下分别为a.b.c表 我想删除a表所有计费日期为‘2012年07月’跟‘2012年08月’的全部数据 在删除的数据当中里面 在删除b表‘id’列跟a表‘计费id列’一样的数据 在删除a.b的同时 在删除c表 '收款单编号'列跟b表'收款单编号'列一样的数据
展开
展开全部
delete from c where 收款单编号 in
(select 收款单编号 from b where id in
(select 计费id from a where 计费日期>='2012-07-01' and 计费日期<'2012-08-01'));
delete from b where id in
(select 计费id from a where 计费日期>='2012-07-01' and 计费日期<'2012-08-01') ;
delete from a where 计费日期>='2012-07-01' and 计费日期<'2012-08-01' ;
commit;
(select 收款单编号 from b where id in
(select 计费id from a where 计费日期>='2012-07-01' and 计费日期<'2012-08-01'));
delete from b where id in
(select 计费id from a where 计费日期>='2012-07-01' and 计费日期<'2012-08-01') ;
delete from a where 计费日期>='2012-07-01' and 计费日期<'2012-08-01' ;
commit;
展开全部
删除语句如下:
delete table1 where column1 = '条件1' and column2 = '条件2';
delete table2 where column1 = '条件1' and column2 = '条件2';
delete table3 where column1 = '条件1' and column2 = '条件2';
对于SQL语句,可以根据条件,删除、更新多条数据,但不能多表,所以只能依次执行多条删除语句。
一般是在客户端代码中准备好删除条件或者删除语句后,循环执行删除语句。
如果表间存在约束关系,则需要根据约束关系确定执行顺序。如表B的列1必须是表A中存在的数据,则删除时需要先删除表B的数据,然后在删除表A的数据。
如果表删除的条件中存在相互关联,则必须保证后执行的语句不会因先执行的语句已经删除了表数据,而改变执行结果。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |