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表'收款单编号'列一样的数据 展开
 我来答
嘻哈大叔ov
2016-10-17
知道答主
回答量:7
采纳率:0%
帮助的人:4.4万
展开全部
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;
lzh3452
2016-10-27 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:891万
展开全部

删除语句如下:

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的数据。

如果表删除的条件中存在相互关联,则必须保证后执行的语句不会因先执行的语句已经删除了表数据,而改变执行结果。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式