我試圖通過從表(t2)中獲取值來更新表(t1)上的密鑰值爲(abc)時的密鑰。在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'。在我的情況下,我的姓名與我父親胡安奧羅佩薩相同,他甚至可以使用他的身份證ID「big plus」從我身上取回郵件包,當我媽媽打來電話或電話響時,您必須問父親或兒子。 –
Thanks @Hambone,我向數據專家證實,他們建議我可以使用另一個可以匹配的字段。 –