具有多個資料表連接的 SQL 更新
使用多個連接表中的資料更新表欄位是一個頻繁的 SQL 操作。 本指南示範如何有效地執行此任務。
場景:
想像一個包含三個表格的資料庫:item_master
(im)、group_master
(gm) 和 Manufacturer_Master
(mm)。 我們將使用這些表來說明更新過程。 資料檢索範例如下所示:
<code class="language-sql">SELECT im.itemid, im.sku AS iSku, gm.SKU AS GSKU, mm.ManufacturerId AS ManuId, mm.ManufacturerName, im.mf_item_number, mm.ManufacturerID FROM item_master im, group_master gm, Manufacturer_Master mm WHERE im.mf_item_number LIKE 'STA%' AND im.sku = gm.sku AND gm.ManufacturerID = mm.ManufacturerID AND gm.manufacturerID = 34;</code>
更新要求:
目標是使用從連接表派生的值更新 mf_item_number
中的 item_master
欄位。
SQL 解:
以下 SQL 語句完成此更新:
<code class="language-sql">UPDATE im SET mf_item_number = gm.SKU -- Or other appropriate field from joined tables 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
欄位。 您可以將 gm.SKU
替換為連接表中的任何其他相關欄位。 FROM item_master im JOIN group_master gm ON im.sku = gm.sku JOIN Manufacturer_Master mm ON gm.ManufacturerID = mm.ManufacturerID
:根據匹配的 sku
和 ManufacturerID
值定義三個表之間的聯結。 WHERE im.mf_item_number LIKE 'STA%' AND gm.manufacturerID = 34
:過濾要更新的行,確保僅那些符合指定條件的行受到影響。 執行此查詢會根據連接條件和 WHERE 子句過濾器,使用 mf_item_number
中對應的 item_master
值更新 SKU
表中的 group_master
欄位。 請記住調整 SET
子句和 WHERE
子句以滿足您的特定更新要求。
以上是如何使用 SQL 中多個連接表的資料更新表欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!