2015-09-01 2 views
0

Я пытаюсь обновить один столбец в таблице1 из столбца таблицы2. Здесь
- это то, что я делаю, но получаю ошибку ORA. ORA-01427: single-row subquery returns more than one row.Обновить один столбец в таблице1 из значения в таблице2

update table1 a 
set a.art_num = (
    select b.art_num from table2 b 
    where a.comp_id = b.comp_id); 

Большое спасибо!

+0

ошибка происходит из-за того, что table2 содержит более одной строки, которая соответствует условию соединения: 'a.comp_id = b.comp_id' – HashPsi

ответ

0

Это происходит потому, что ваш подзапрос возвращает более одного результата. Вы должны проверить это один:

select b.art_num 
from table2 b 
where a.comp_id = b.comp_id 

Вы можете попробовать выбрать DISTINCT (поиск отчетливый в ссылке для документации) на подзапроса:

update table1 a 
set a.art_num = (
    select distinct(b.art_num) 
    from table2 b 
    where a.comp_id = b.comp_id); 
+0

Большое спасибо! Он работал как шарм :-) – user4826005

+0

Пожалуйста, отметьте ответ правильно и проголосуйте. – teoreda