Обновление из выбора на нескольких таблицах - PullRequest
1 голос
/ 18 июня 2020

Я немного устарел с операторами Oracle - я пытаюсь создать оператор обновления, который делает a.col2 'Y'. Столбцы col3 и col4 содержат одинаковые данные, но имена столбцов разные (много столбцов в обеих таблицах). Вот мой оператор выбора, который определяет все записи:

select a.col1, b.col1, a.col2, b.col2, a.col3, b.col4 from 
table1 a, table2 b
 where a.col1 = 'XX'
 and a.col1 = b.col1
 and b.col5 = 'XX'
 and a.col3 = b.col4
 and a.col2 = b.col2
 and a.col2 = 'X'
 and a.col3 like 'XX%'

Это не сработает, верно (?):

 update table1 a, table2 b
 set a.col1 = 'Y'
 where a.col1 = 'XX'
 and a.col1 = b.col1
 and b.col5 = 'XX'
 and a.col3 = b.col4
 and a.col2 = b.col2
 and a.col2 = 'X'
 and a.col3 like 'XX%'

1 Ответ

1 голос
/ 18 июня 2020

Полагаю, вы хотите exists:

update table1 a
     set a.col1 = 'Y'
     where a.col1 = 'XX' and
           a.col2 = 'X' and
           a.col3 like 'XX%' and
           exists (select 1
                   from table2 b
                   where a.col1 = b.col1 and
                         b.col5 = 'XX' and
                         a.col3 = b.col4 and
                         a.col2 = b.col2
                  ); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...