Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Update - это просто  [new]
afanasij
Guest

  update mc_card a    set a.name_card = 
   
  (select distinct b.name from idf_card b  where a.d_name_card = b.s_name)


Почему здесь single-row subquery returns more than one row?

Ведь просто все?
9 янв 07, 17:26    [3617744]     Ответить | Цитировать Сообщить модератору
 Re: Update - это просто  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Действительно, все просто, подзапрос возвращает больше одной записи
9 янв 07, 17:30    [3617784]     Ответить | Цитировать Сообщить модератору
 Re: Update - это просто  [new]
GuestOra
Guest
afanasij

  update mc_card a    set a.name_card = 
   
  (select distinct b.name from idf_card b  where a.d_name_card = b.s_name)


Почему здесь single-row subquery returns more than one row?

Ведь просто все?

   b.name     b.s_name
  "Name11"   "Name1"
  "Name12"   "Name1"
9 янв 07, 17:31    [3617785]     Ответить | Цитировать Сообщить модератору
 Re: Update - это просто  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116299
afanasij

  update mc_card a    set a.name_card = 
   
  (select distinct b.name from idf_card b  where a.d_name_card = b.s_name)


Почему здесь single-row subquery returns more than one row?

Ведь просто все?


Где то есть в таблице b есть два или более различных name для одного s_name
9 янв 07, 17:32    [3617799]     Ответить | Цитировать Сообщить модератору
 Re: Update - это просто  [new]
denix1
Member

Откуда: Киев
Сообщений: 4656
потому что подзапрос возвращает больше чем одну запись
или вы думаете что использование distinct приведет к тому что всегда будет возвращаться только одна запись ?

попробуйте заменить distinct на max(...)
для тестового прогона
9 янв 07, 17:32    [3617802]     Ответить | Цитировать Сообщить модератору
 Re: Update - это просто  [new]
afanasij
Guest
dmidek
afanasij

  update mc_card a    set a.name_card = 
   
  (select distinct b.name from idf_card b  where a.d_name_card = b.s_name)


Почему здесь single-row subquery returns more than one row?

Ведь просто все?


Где то есть в таблице b есть два или более различных name для одного s_name


Да есть. Спасибо. После праздников видно в голове глюки
9 янв 07, 17:37    [3617840]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить