Я пытаюсь обновить ключ в таблице (t1), когда значение ключа (abc), получив значение из таблицы (t2).Обновление ключа из таблицы из другой таблицы в Oracle
Он работает, как ожидается, когда я ограничиваю его к конкретному человеку
update table_a t1
set t1.u_key = (select t2.u_key
from table_b t2
where t2.name_f=t1.name_f
and t2.name_l=t1.name_l
and rownum<=1
and t2='NEVADA')
where t1.u_key = 'abc'
and e.name_f='Lori'
and e.name_l='U'
;
я сначала пытался без ROWNUM и сказал слишком много возвращаемых строк.
Чтобы запустить все данные с помощью t1.u_key = 'abc' и вытащить конкретное имя, я пробовал это, которое выполнялось до истечения времени ожидания.
update table_a t1
set t1.u_key = (select t2.u_key
from table_b t2
where t2.name_f=t1.name_f
and t2.name_l=t1.name_l
and rownum<=1
and t2='NEVADA')
where t1.u_key = 'abc'
;
Не могли бы вы взглянуть на него и предложить, чего мне не хватает.
ROWNUM <= 1 кажется немного произвольным ... там не определено тай-брейка, вы можете использовать, чтобы определить, какую запись вы хотите вернуться (обновление), когда Есть несколько? – Hambone
У вас, вероятно, есть два человека с такими же «first_name» и «last_name». В моем случае у меня есть то же имя, что и мой папа 'Хуан Оропеза', он даже может получить от меня почтовые пакеты, используя свой идентификатор карты« большой плюс », размер вниз, когда моя мама звонит или звонит по телефону, вы должны попросить отца или сын. –
Спасибо @ Хамбоне, я подтвердил экспертом по данным, и они предложили, чтобы я мог использовать другое поле, которое может соответствовать одному на одном. –