我有这个代码(它有效):
update CES.SCHEME_ELEMENT se
set se.NAME = (
select ni.NAME_WT from CES.NI_CES ni
where se.FK_VALUE = ni.ID_NI_WORK and
se.SCHEME_ID = 11 and se."TYPE" = 'zn' );
并且不明白,为什么我不能做这样的事情
update CES.NI_CES ni
set ni.NAME_WT = 'ЗР'
where ni.ID_NI_WORK = (
select se.FK_VALUE from CES.SCHEME_ELEMENT se
where se.SCHEME_ID = 11 and se."TYPE"='zn');
OR
UPDATE
(SELECT ni.NAME_WT nw
FROM CES.NI_CES ni
INNER JOIN CES.SCHEME_ELEMENT se
ON se.FK_VALUE = ni.ID_NI_WORK
WHERE se.SCHEME_ID = 11 and se."TYPE"='zn'
) t
SET t.nw = 'ЗР';
看到这个Update statement with inner join on Oracle
Thnks
答案 0 :(得分:2)
您可以使用in
运算符代替=
运算符进行子查询:
update CES.NI_CES ni
set ni.NAME_WT = 'ЗР'
where ni.ID_NI_WORK IN ( --HERE!
select se.FK_VALUE
from CES.SCHEME_ELEMENT se
where se.SCHEME_ID = 11 and se."TYPE"='zn');