首頁 >資料庫 >mysql教程 >如何使用連線更新 SQL 中的欄位?

如何使用連線更新 SQL 中的欄位?

Linda Hamilton
Linda Hamilton原創
2025-01-22 13:56:11189瀏覽

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_mastergroup_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)。
  • FROM item_master im JOIN ...:根據符合的欄位值定義三個表之間的連結。
  • WHERE ...:將更新過濾為僅 mf_item_number 以 'STA%' 開頭且 manufacturerID 為 34 的行。

一般情況

此方法適用於各種更新場景:

<code class="language-sql">UPDATE tableA
SET fieldA = tableB.fieldB
FROM tableA
JOIN tableB ON tableA.common_column = tableB.common_column
WHERE condition;</code>

這會根據匹配的 fieldA 值和任何指定的 tableA,用 fieldBtableB 的值更新 common_column 中的 condition。 請記住在執行之前始終仔細檢查您的查詢,以防止意外的資料修改。

以上是如何使用連線更新 SQL 中的欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn