更新......在哪里......内部加入

时间:2017-01-05 21:26:13

标签: sql oracle11g sql-update

我一直试图通过内部联接找到更新记录的方法......但是我们无法找到任何文档。

到目前为止,这是我的查询。

update TBL1 set carga = '2016-11' where  (
select h.CASEID 
from TBL1
h inner join TBL2 t 
on h.caseid = t.caseid)

3 个答案:

答案 0 :(得分:1)

我认为你的where子句中缺少“TBL1.CASEID =”:

update TBL1 set carga = '2016-11' where TBL1.CASEID =  (
select h.CASEID 
from TBL1
h inner join TBL2 t 
on h.caseid = t.caseid)

答案 1 :(得分:0)

我想你想要exists

update TBL1
    set carga = '2016-11'
    where exists (select 1
                  from TBL2 t 
                  where TBL1.caseid = t.caseid
                 );

您也可以使用in

update TBL1
    set carga = '2016-11'
    where caseid in (select t.caseid from TBL2 t);

答案 2 :(得分:0)

似乎你需要一个合并:

merge into TBL1 t1
using ( select * from TBL2) t2
on ( t1.caseid = t2.caseid)
when matched then
  update set carga = '2016-11'