2015-08-24 6 views
0

У меня возникла проблема с оператором обновления в sql. Я хочу обновить param1 в таблице1, если условия истинны (показано в моем примере).oracle-sql UPDATE, если условия верны в нескольких таблицах

В настоящее время я пытаюсь это:

update table1 
set table1.param1 = 1 
from (select * table1, table2 
    where table1.param2=table2.paramA 
    and table2.paramB='123456' 
    and table1.param3='XXX123'); 

ответ

1

Вы можете попробовать это.

update (select * 
     from table1 join table2 
     on table1.param2=table2.paramA 
     where table2.paramB='123456' 
     and table1.param3='XXX123') t 
set t.param1 = 1 
+0

Если я пытаюсь это я получаю эту ErrorMessage: 00971. 00000 - «отсутствует ключевое слово» SET – KingKoelsch

+0

пожалуйста, попробуйте модифицированную версию. –

0

Вам не нужно вступать в подзапрос. Вы можете сделать соединение и обновить за один раз. Попробуйте выполнить запрос для вашего обновления.

update table1 join table2 on table1.param2=table2.paramA 
    set table1.param1 = 1 
    where table2.paramB='123456' 
    and table1.param3='XXX123'; 
+0

Вы не можете использовать 'JOIN' в' UPDATE' в Oracle. –

Смежные вопросы