使用来自不同来源的数据更新表

时间:2013-07-23 02:36:10

标签: sql oracle

我正在尝试执行以下操作:

update mytable 
set fullname = anothersource.firstname ||' '|| anothersource.lastname
where
userid = anothersource.userid
;

我遇到了一些我没有粘贴的错误,因为我简化了这个例子是没有意义的,但是,是否有一种特殊的方式来处理来自不同来源的信息的更新?我相信问题可能存在于其中。

由于

2 个答案:

答案 0 :(得分:1)

您需要Oracle的子查询:

update mytable 
    set fullname = (select anothersource.firstname ||' '|| anothersource.lastname
                    from anothersource
                    where mytable.userid = anothersource.userid
                   );

如果存在子查询可能返回多行的危险,则使用聚合(例如min()where rownum = 1)。

答案 1 :(得分:0)

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;