2013-07-23 5 views
0

я пытаюсь сделать следующее:обновление таблицы с данными из другого источника

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

Я имею ошибки, которые я не приклеивая, потому что делать нет смысла, так как я упростил пример, однако, есть специальный способ обработки обновлений с информацией из разных источников? Я считаю, что может быть проблема, в которой проблема.

Благодаря

ответ

1

Вам нужен подзапрос для Oracle:

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

Если существует опасность того, что подзапрос может возвращать более одной строки, а затем использовать агрегацию (например, min() или where rownum = 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; 
Смежные вопросы