ホームページ >データベース >mysql チュートリアル >SQL を使用して Oracle テーブルを別のテーブルのデータで更新するにはどうすればよいですか?
SQL を使用して Oracle テーブルを別のデータで更新する
Oracle SQL は、あるテーブルを別のテーブルのデータで更新する効率的な方法を提供します。 これは、相関更新または代替構文を使用して実現できます。
テーブルの例を使って説明してみましょう:
<code class="language-sql">Table 1: id | name | description ----------------------- 1 | a | abc 2 | b | def 3 | c | adf</code>
<code class="language-sql">Table 2: id | name | description ----------------------- 1 | x | 123 2 | y | 345</code>
方法 1: 相関サブクエリの更新
このアプローチでは、相関サブクエリを使用して、Table 2
の各行に対して一致するデータを Table 1
からフェッチします:
<code class="language-sql">UPDATE table1 t1 SET (name, description) = (SELECT t2.name, t2.description FROM table2 t2 WHERE t1.id = t2.id) WHERE EXISTS ( SELECT 1 FROM table2 t2 WHERE t1.id = t2.id );</code>
WHERE EXISTS
句により、両方のテーブルで ID が一致する行のみが更新されるようになります。
方法 2: サブクエリを使用した代替構文
このメソッドはサブクエリを使用して両方のテーブルを結合する一時ビューを作成し、このビューを更新します。
<code class="language-sql">UPDATE (SELECT t1.id, t1.name name1, t1.description desc1, t2.name name2, t2.description desc2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id) SET name1 = name2, desc1 = desc2;</code>
このアプローチでは、JOIN
を活用してテーブルを効率的に結合します。 次に、更新により、name1
(desc1
、Table 2
) の対応する列に基づいて、選択された列 (name2
、desc2
) が変更されます。 id
列は結合キーとして機能し、Table 1
.
以上がSQL を使用して Oracle テーブルを別のテーブルのデータで更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。