请教sql命令代码

来源:百度知道 编辑:UC知道 时间:2024/06/13 22:29:00
一个数据库有 表1 和 表2

表1 有字段 a1 a2 a3 a4

表2 有字段 b1 b2 b3 b4

那么我想查出来(最好直接删除) a1=b1 a2=b2 a3=b3 符合这三个条件的的所有记录

非常感谢

哦,你是要删除表1中符合的,还是删除表2中的符合记录的呢?还是都删除?
1,如果是只要选择的话
select a.a1,a.a2,a.a3,a.a4,b.b4
from 表1 a,表2 b
where a.a1=b.b1 and a.a2=b.b2 and a.a3=b.b3
2,如果你要删除表1符合要求的记录
delete from 表1 where (a1,a2,a3) in (select a.a1,a.a2,a.a3 from 表1 a,表2 b where a.a1 = b.b1 and a.a2 = b.b2 and a.a3 = b.b3) c
3,如果你要删除表2符合要求的记录
delete from 表2 where (b1,b2,b3) in (select b.b1,b.b2,b.b3 from 表1 a,表2 b where a.a1 = b.b1 and a.a2 = b.b2 and a.a3 = b.b3) c
4,如果你都要删除,那么不能简单的将2,3句子连起来写,那样不会成功,你需要一个中间媒介表来存储信息。需要四句sql文:(#为中间表)
1) select a1,a2,a3 into # from
(select a1,a2,a3,a4,b4
from 表1 a,表2 b
where a.a1=b.b1 and a.a2=b.b2 and a.a3=b.b3) c
2)delete from 表1 where (a1,a2,a3) in (select a1,a2,a3 from #) c
3)delete from 表2 where (b1,b2,b3) in (select a1,a2,a3 from #) c
4) drop table #
我手上没有装SQL,语法可能有些错误,麻烦自己试一下。

删除的话可以使用临时表,将要删除的记录先导出,然后依次删除表1和表2的数据

if exists(select *