所以我搜索了高低,尝试在此论坛上使用的其他提示无济于事。
因此尝试在Oracle SQL Developer(v3.2.20.09)中使用内部联接删除
表I我希望从(表1,列名Column1)中删除,其中数据与'Table2中的列'Column2'匹配。
我知道Oracle / Microsoft SQL之间存在一些差异,尝试过多次查询,如下所示,略有不同(使用开启/关闭括号,内部联接,WHERE EXISTS,WHERE(选择))。 尝试:
delete from table2 where
exists (select column1 from table1);
delete from table2,
inner join table1 on table2.column2 = table1.column1;
我写的代码有什么问题?
答案 0 :(得分:3)
EXISTS
版本如下所示:
delete from table2
where exists (select *
from table1
where table1.column1 = table2.column2);
或者,您可以使用IN
子句
delete from table2
where column2 in (select column1
from table1);
答案 1 :(得分:3)
如果您尝试从table1
删除,那么这是必须在delete
子句中使用的表名,而不是table2
。
delete table1 t1
where exists (select null
from table2 t2
where t2.column2 = t1.column1)