我正在尝试执行以下操作:
update mytable
set fullname = anothersource.firstname ||' '|| anothersource.lastname
where
userid = anothersource.userid
;
我遇到了我没有粘贴的错误,因为我简化了示例没有意义,但是,是否有一种特殊的方法来处理来自不同来源的信息的更新?我相信这可能就是问题所在。
谢谢
您需要 Oracle 的子查询:
update mytable
set fullname = (select anothersource.firstname ||' '|| anothersource.lastname
from anothersource
where mytable.userid = anothersource.userid
);
如果存在子查询可能返回多行的危险,则使用聚合(例如min()
or where rownum = 1
)。
UPDATE mytable
SET fullname =
(SELECT firstname FROM anothersource WHERE user_id = user_id)
||' '||
(SELECT lastname FROM anothersource1 WHERE user_id = user_id)
WHERE mytable_id = id;