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

結合を使用して SQL のフィールドを更新するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-22 13:56:11
オリジナル
188 人が閲覧しました

How to Update a Field in SQL Using Joins?

結合を使用した SQL フィールドの更新: 総合ガイド

多くの場合、テーブルのフィールドを更新するには、他のテーブルからのデータが必要になります。 これは、SQL の UPDATE ステートメントと結合を使用して効率的に実現できます。 このガイドではそのプロセスを説明します。

クエリ構造

結合を組み込んだ UPDATE クエリの基本構造は次のとおりです。

<code class="language-sql">UPDATE target_table
SET target_field = source_value
FROM target_table
JOIN source_table1 ON join_condition1
JOIN source_table2 ON join_condition2
WHERE filter_condition;</code>
ログイン後にコピー

具体例

mf_item_number テーブルの item_master フィールドを更新する必要があるとしましょう。 新しい値は、それぞれ item_master 列と group_master 列に基づいて Manufacturer_MasterskuManufacturerID テーブルを結合することで得られます。

SQL クエリは次のようになります:

<code class="language-sql">UPDATE im
SET mf_item_number = gm.SKU
FROM item_master im
JOIN group_master gm ON im.sku = gm.sku
JOIN Manufacturer_Master mm ON gm.ManufacturerID = mm.ManufacturerID
WHERE im.mf_item_number LIKE 'STA%' AND gm.manufacturerID = 34;</code>
ログイン後にコピー

説明

  • UPDATE im: 更新する テーブル (item_master というエイリアス) を指定します。im
  • SET mf_item_number = gm.SKU: フィールドを mf_item_number テーブル (SKU というエイリアス) の group_master の値に設定します。 gm
  • : 一致する列値に基づいて 3 つのテーブル間の結合を定義します。FROM item_master im JOIN ...
  • : WHERE ... が 'STA%' で始まり、 が 34 である行のみに更新をフィルターします。mf_item_number manufacturerID
一般的なケース

このアプローチは、さまざまな更新シナリオに適応できます:

これは、一致する
<code class="language-sql">UPDATE tableA
SET fieldA = tableB.fieldB
FROM tableA
JOIN tableB ON tableA.common_column = tableB.common_column
WHERE condition;</code>
ログイン後にコピー
値と指定された

に基づいて、fieldAtableA の値で fieldB を更新します。 意図しないデータ変更を防ぐために、実行前に必ずクエリを注意深く確認してください。tableB

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート