我在现有表中添加了一个新列。我想用从另一个表中检索到的值填充它。
桌子:EXPORT
Name | email | employeeid | userid
桌子:USER
id | name | email | idnumber
新列是EXPORT.userid
,我想等于USER.id
。请注意id
和idnumber
不一样-idnumber
存储employeeid
whileid
是一个自动增量 PK。USER.idnumber
等于EXPORT.employeeid
。
我想EXPORT.userid
填充USER.id
when 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