0
次のoracle相関問合せを取得して、レコードのサブセクションのみで更新を実行することはできません。現在、すべてのレコードを更新します。私は希望UPDATEステートメントを記述しようとしています相関更新問合せ
employee_id status
---------------------
1000 failed
1001 closed
1002 open
1003 open
1004 close
1005 open
1006 open
:私はビューのように見える(VW_STATUS)を持っている
request_id employee_id status
------------------------------------
1 1000
1 1001
2 1003
2 1004
2 1005
3 1006
:
私は次のようになりますどのテーブル(TBL_REQUESTS)を持っていますTBL_REQUESTSの従業員のステータスフィールドを、TBL_REQUESTS.request_idが渡された値と等しいVW_STATUSから対応するステータスで更新します。 VW_STATUSには従業員一人あたりレコード数が2以上あることがありますが、それが問題になる場合は、VIEWで修正する方法を常に探すことができます。
TBL_REQUESTSのすべての行を更新この試み:
UPDATE TBL_REQUESTS r1
SET r1.status =
(SELECT s.status
FROM VW_STATUS s
INNER JOIN TBL_REQUESTS r2 ON s.employee_id = r2.employee_id
WHERE rd2.request_id = 2)
WHERE EXISTS
(SELECT s.status
FROM VW_STATUS s
INNER JOIN TBL_REQUESTS r2 ON s.employee_id = r2.employee_id
WHERE rd2.request_id = 2)
これは私のバージョンよりも見栄えが良いです。しかし、従業員が複数のリクエストで表示されても、そこでは更新されませんか?これはそれを軽減するだろうか? 'UPDATE TBL_REQUESTS R1 SETのr1.statusは= (VW_STATUS S INNER JOIN TBL_REQUESTS R2 ONからs.status を選択s.employee_id = r2.employee_id WHERE rd2.request_id = 2) におけるr1.employee_id(選択WHERE s.employee_id FROM VW_STATUS s INNER JOIN TBL_REQUESTS r2 ON s.employee_id = r2.employee_id WHERE rd2.request_id = 2)およびr1.request_id = 2'編集 - 保存されたコメントの入力を認識しませんでした。 – MidnightThoughtful
はい、もっともです。また、私の質問があなたの質問に答えるのを助けたら私の答えに正しいものを記してください。 –