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