measureid
以下のように、2 つのテーブルで一致する行のみを削除したいのですが、このクエリですべての行が削除されます。
delete from temp1
where exists (select t1.*
from temp1 t1, temp2 t2
where t2.measureid = t1.measureid)
何を変更する必要がありますか?
measureid
以下のように、2 つのテーブルで一致する行のみを削除したいのですが、このクエリですべての行が削除されます。
delete from temp1
where exists (select t1.*
from temp1 t1, temp2 t2
where t2.measureid = t1.measureid)
何を変更する必要がありますか?
使いたくないと思います 使いexists
たいと思いますin
delete from temp1 where measureid in
(select t1.measureid from temp1 t1, temp2 t2 where t2.measureid = t1.measureid);
またはさらに良い
delete from temp1 where measureid in
(select measureid from temp2);
その理由は
select t1.* from temp1 t1, temp2 t2 where t2.measureid = t1.measureid
常に行を返します。おそらくあなたが望んでいたのは
delete from temp1 t1 where exists (select t2.* from temp2 t2 where t2.measureid = t1.measureid)