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

相関サブクエリを使用して Oracle テーブルを更新するにはどうすればよいですか?

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

How Can I Update an Oracle Table Using Correlated Subqueries?

相関サブクエリを使用して Oracle SQL のテーブル データを更新する

一致する ID に基づいて別のテーブルからテーブル データを更新する必要がある場合、Oracle SQL は関連更新と呼ばれる強力なメカニズムを提供します。このアプローチでは、SQL ステートメントでサブクエリを使用することでシームレスな更新が可能になります。

対応する ID に基づいてテーブル 2 のデータでテーブル 1 を更新する例を見てみましょう。

<code>Table 1:
id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf

Table 2:
id    name    desc
-----------------------
1     x       123
2     y       345</code>

Oracle SQL でこの更新を実行するには、次のクエリを使用できます:

<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>

このクエリは相関サブクエリを使用して、テーブル 1 の ID に基づいてテーブル 2 から一致するデータを抽出します。 WHERE 句により、表 2 に対応する行がある表 1 の行のみが更新されます。

結合結果がキー保持ビューの場合は、次のクエリを使用することもできます:

<code class="language-sql">UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.desc desc1,
               t2.name name2,
               t2.desc desc2
          FROM table1 t1,
               table2 t2
         WHERE t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2</code>

このクエリは派生テーブルで更新を実行します。両方のテーブルの一致するデータが ID 列によって結合されます。後続の SET 句は、表 1 の列を表 2 の値で更新します。

これらの関連する更新テクノロジを使用することで、Oracle SQL のデータを効率的に更新し、テーブル間のシームレスな同期とデータの一貫性を確保できます。

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

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