如何根据两个表的数据关联 来删除一个表的数据。 delete from 表A where 表A.fd1||表A.fd2 in (select 表B.fd1||表B.fd2 from 表B,表A AA where 表B.fd1= AA.fd1 and 表B.fd2= AA.fd2) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 delete from 表A where (表A.fd1,表A.fd2) in (select 表B.fd1,表B.fd2 from 表B,表A where 表B.fd1= 表A.fd1,表B.fd2= 表A.fd2) select 表B.fd1,表B.fd2 from 表B,表A where 表B.fd1= 表A.fd1,表B.fd2= 表A.fd2这个结果集比较大的话, 给(fd1,fd2)加索引,而且使用顺序不要错 如果两个字段都是varchar2类型,可是尝试这样处理delete from 表A where 表A.fd1||'&'||表A.fd2 in (select 表B.fd1||'&'||表B.fd2 from 表B,表A where A.fd1=B.fd1 and A.fd2=B.fd2); fd1与fd2的类型无需相同。表B最好按fd1和fd2建索引delete from 表A where exists (select 1 from 表B where 表B.fd1= 表A.fd1 and 表B.fd2= 表A.fd2); 同意bobfang(匆匆过客) 的做法! maohaisheng() 的写法也应该是对的! 这样吧delete from 表A where (fd1,fd2) in (select fd1,fd2 from 表B where fd1=表A.fd1 and fd2=表A.fd2); 简简单单的不就行了吗?delete from 表A where (fd1,fd2) in (select fd1,fd2 from 表B ); 查询百万级数据太慢的问题请教。 SELECT语句中列名加上双引号有什么区别? Oracle中角色和权限的理解 请教关于oracle rac的问题 请教SQL语句 关于clob,这句sql语句应该怎么写? Oracle数据库字符集采用US7ASCII编码时出现中文字符乱码如何解决? 郁闷的SQL语句 【【 老大们,你们说得关于 Clob 字段的写入方法不对啊 :( 】】 有关proc 怎样改表名 清除回退段(难题,来者有分)
这个结果集比较大的话, 给(fd1,fd2)加索引,而且使用顺序不要错
delete from 表A where 表A.fd1||'&'||表A.fd2 in (select 表B.fd1||'&'||表B.fd2 from 表B,表A where A.fd1=B.fd1 and A.fd2=B.fd2);
delete from 表A where exists (select 1 from 表B where 表B.fd1= 表A.fd1 and 表B.fd2= 表A.fd2);
delete from 表A where (fd1,fd2) in (select fd1,fd2 from 表B where fd1=表A.fd1 and fd2=表A.fd2);
delete from 表A where (fd1,fd2) in (select fd1,fd2 from 表B );