ホームページ >データベース >mysql チュートリアル >SQL を使用して Oracle テーブルを別のテーブルのデータで更新するにはどうすればよいですか?

SQL を使用して Oracle テーブルを別のテーブルのデータで更新するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-22 02:41:14440ブラウズ

How Can I Update an Oracle Table with Data from Another Using SQL?

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 (desc1Table 2) の対応する列に基づいて、選択された列 (name2desc2) が変更されます。 id 列は結合キーとして機能し、Table 1.

への正確な更新を保証します。

以上がSQL を使用して Oracle テーブルを別のテーブルのデータで更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。