@Denioo

Подзапрос одиночной строки возвращает более одной строки?

Всем привет, хочу перенести данные из столбца одной таблицы в столбец другой таблицы. Пишу такой запрос
update contract_city
set manager_id = 
(select contract_manager.manager_id
from contract_manager)


И вылетает ошибка
spoiler
Error starting at line : 1 in command -
update contract_city
set manager_id =
(select contract_manager.manager_id
from contract_manager
where contract_manager.contract_id = contract_city.contract_id)
Error report -
ORA-01427: подзапрос одиночной строки возвращает более одной строки

Не подскажете в чем проблема.
  • Вопрос задан
  • 4291 просмотр
Решения вопроса 3
Смотрите:

update contract_city
set manager_id = 
(select contract_manager.manager_id
from contract_manager)


Обновить все записи в таблице contract_city, установив для КАЖДОГО поля manager_id значение, равное ( ВЫБРАТЬ ВСЕ contract_manager.manager_id)

Понимаете ??

Вы для КАЖДОЙ записи устанавливаете ВСЕ ЗАПИСИ из другой таблицы.

Попробуйте установить соответствие:

select contract_manager.manager_id
from contract_manager


Заменить на К ПРИМЕРУ:
select contract_manager.manager_id
from contract_manager
where contract_city.NAME_MANAGER = contract_manager.NAME_MANAGER


В общем найти общее поле у этих таблиц, и связать по нему.
Ответ написан
Комментировать
Ошибка в том, что вот это запрос select contract_manager.manager_id from contract_manager
возвращает более одной строки потому что в нем нет никакой привязки where
Ответ написан
Stalker_RED
@Stalker_RED
contract_manager.manager_id
from contract_manager
вероятно в этой таблице не одна запись
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы