首页 >数据库 >mysql教程 >如何使用 SQL 连接更新表字段?

如何使用 SQL 连接更新表字段?

DDD
DDD原创
2025-01-22 14:05:11853浏览

How to Update a Table Field Using SQL Joins?

使用 JOIN 的 SQL UPDATE 查询

假设需要根据从多个表的联接中检索到的值来更新表中的字段。例如,您可能有一个 item_master (im) 表,其中包含一个需要根据 group_master (gm) 和 Manufacturer_Master (mm) 中的数据更新的 mf_item_number 字段。

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

要更新 item_master 中的 mf_item_number 字段,可以使用以下 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>

此查询根据 group_master 中的 SKU 值更新 item_master 中的 mf_item_number 字段,而 group_master 本身则通过涉及 Manufacturer_Master 的条件进行过滤。

这是一个使用联接的通用更新查询示例:

<code class="language-sql">UPDATE A
SET foo = B.bar
FROM TableA A
JOIN TableB B ON A.col1 = B.colx
WHERE ...;</code>

在此示例中,UPDATE 子句引用 FROM 子句中的表别名 A,以根据从 TableA 和 TableB 之间的联接中检索到的 B.bar 值更新字段 foo。

以上是如何使用 SQL 连接更新表字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn