ホームページ >データベース >mysql チュートリアル >別のテーブルの値を使用して Oracle テーブルのデータを更新するにはどうすればよいですか?
Oracle SQL: 別のテーブルの値を使用したテーブル データの更新
多くの場合、データベース管理では、あるテーブルのデータを別のテーブルから取得した値で更新する必要があります。 これを 2 つのサンプル テーブルで説明してみましょう:
表 1:
<code>id name desc ----------------------- 1 a abc 2 b def 3 c adf</code>
表 2:
<code>id name desc ----------------------- 1 x 123 2 y 345</code>
私たちの目標は、Table 1
の name
列と desc
列を Table 2
のデータで更新し、id
列で一致させることです。望ましい結果:
表 1 (更新):
<code>id name desc ----------------------- 1 x 123 2 y 345 3 c adf</code>
Oracle SQL は、このタイプの相関更新のための効率的な方法を提供します。
方法 1: 相関サブクエリ
このアプローチでは、UPDATE
ステートメント内で相関サブクエリを使用します。
<code class="language-sql">UPDATE table1 t1 SET (name, desc) = (SELECT t2.name, t2.desc FROM table2 t2 WHERE t1.id = t2.id) WHERE EXISTS ( SELECT 1 FROM table2 t2 WHERE t1.id = t2.id );</code>
このクエリは、Table 1
内に一致する id
が存在する Table 2
内の各行を更新します。
方法 2: 共通テーブル式 (CTE) を使用する
また、結合によってキーが保存されたビューが作成される場合、CTE はよりクリーンなソリューションを提供します。
<code class="language-sql">UPDATE (SELECT t1.id, t1.name name1, t1.desc desc1, t2.name name2, t2.desc desc2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id) SET name1 = name2, desc1 = desc2;</code>
このメソッドは、両方のテーブルの関連フィールドを組み合わせた一時ビューを (CTE を使用して) 構築し、このビューで更新を実行します。
どちらの方法も、Table 1
のデータに基づいて Table 2
を効果的に更新し、Oracle SQL でのデータ操作の柔軟な手法を示します。
以上が別のテーブルの値を使用して Oracle テーブルのデータを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。