ホームページ >データベース >mysql チュートリアル >JOIN サブクエリを使用した Oracle UPDATE ステートメントの ORA-01427 を修正するにはどうすればよいですか?
Oracle の結合クエリによる更新
Oracle ユーザーは、次のクエリで無限の実行時間が発生しました:
UPDATE table1 t1 SET (t1.col,t1.Output) = ( SELECT t2.col, t3.Output + t2.col FROM tabl2 t3 LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key WHERE t2.col is not NULL);
SELECT サブクエリが単一行の結果を保証しない限り、UPDATE ステートメントは失敗します。エラー:
ORA-01427: single-row subquery returns more than one row
相関更新には、外部テーブル (この場合は table1) と内部サブクエリの行をリンクする条件が必要です。通常、次の条件が表示されます:
AND t1.some_key = t2.some_key);
さらに、クエリは table1 のすべての行を更新します。ユーザーが特定の行を更新する場合は、
... WHERE subquery_conditionのような結合条件に基づいてフィルタリングする WHERE 句を追加する必要があります。
以上がJOIN サブクエリを使用した Oracle UPDATE ステートメントの ORA-01427 を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。