我在現有表中添加了新列。我想用我從另一個表中檢索的值填充它。Oracle:使用另一個表中的值更新列
表:EXPORT
Name | email | employeeid | userid
表:USER
id | name | email | idnumber
新列是EXPORT.userid
,我要等於出USER.id
。請注意,id
和idnumber
是不一樣的 - idnumber
存儲employeeid
而id
是自動遞增的PK。 USER.idnumber
等於EXPORT.employeeid
。
我想填充EXPORT.userid
與USER.id
當export.employeeid = user.idnumber
。
我該怎麼做與Oracle兼容的SQL代碼?
我嘗試了以下操作,但它會引發錯誤。
UPDATE EXPORT
SET userid = (SELECT id
FROM USER
WHERE USER.idnumber = EXPORT.employeeid
and USER.EMAIL = EXPORT.email)
WHERE EXISTS(SELECT 1
FROM USER
WHERE USER.idnumber = EXPORT.employeeid
and USER.EMAIL = EXPORT.email)
但我得到這個錯誤
[Error] Execution (2: 19): ORA-01427: single-row subquery returns more than one row
您可以嘗試搜索該錯誤,例如http://stackoverflow.com/search?q=single-row+subquery+returns+more+than+one+row –
@icefresh:你確定idnumber是用戶表的主鍵,請再次檢查它 –