既存のテーブルに新しい列を追加しました。別のテーブルから取得した値を入力したいと考えています。
テーブル:EXPORT
Name | email | employeeid | userid
テーブル:USER
id | name | email | idnumber
新しい列は ですEXPORT.userid。これを に等しくしたいと思いUSER.idます。idとidnumber は同じではないことに注意してください-ストアidnumberは自動インクリメント PK です。に等しいです。employeeididUSER.idnumberEXPORT.employeeid
whenを入力EXPORT.useridしたい。USER.idexport.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