+ -
当前位置:首页 → 问答吧 → sql 用INTERSECT 删除交集

sql 用INTERSECT 删除交集

时间:2011-11-25

来源:互联网

2个表结构相同那么取交集是
select * from table1 INTERSECT select * from table2
如何用 INTERSECT 快速删除交集,我想在table1中删除table1和table2的交集。
不用delete from table1 where field* in (select field* from table2)
或者delete from table1 where exist (select * from table2 where field*=table1.field*)之类的需定位到字段匹配的sql。
谢谢!

作者: shzhouhuiyu   发布时间: 2011-11-25

sql2008可用Merge
http://blog.csdn.net/roy_88/article/details/6942055

其它版本不用 in和exists

可用
delete a
from table1 as a
inner join 
table2 as b on a.[field*]=b.[field*]

作者: roy_88   发布时间: 2011-11-25

有没有个方法用到intersect来删除的?
引用楼主 shzhouhuiyu 的回复:
2个表结构相同那么取交集是
select * from table1 INTERSECT select * from table2
如何用 INTERSECT 快速删除交集,我想在table1中删除table1和table2的交集。
不用delete from table1 where field* in (select field* from table2)
或者delete from ……

作者: shzhouhuiyu   发布时间: 2011-11-25

那就用连接查询

delete a from tb1 a,tb2 b where a.id=b.id

作者: fredrickhu   发布时间: 2011-11-25

引用 2 楼 shzhouhuiyu 的回复:
有没有个方法用到intersect来删除的?

引用楼主 shzhouhuiyu 的回复:
2个表结构相同那么取交集是
select * from table1 INTERSECT select * from table2
如何用 INTERSECT 快速删除交集,我想在table1中删除table1和table2的交集。
不用delete from table1 where fiel……

木有。

作者: fredrickhu   发布时间: 2011-11-25

引用楼主 shzhouhuiyu 的回复:
2个表结构相同那么取交集是
select * from table1 INTERSECT select * from table2
如何用 INTERSECT 快速删除交集,我想在table1中删除table1和table2的交集。
不用delete from table1 where field* in (select field* from table2)
或者delete from ……
sql 2000/2005可以用.
sql 2008不知道.

作者: dawugui   发布时间: 2011-11-25