使用联接更新 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_Master
、sku
和 ManufacturerID
表而派生的。
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
,用 fieldB
中 tableB
的值更新 common_column
中的 condition
。 请记住在执行之前始终仔细检查您的查询,以防止意外的数据修改。
以上是如何使用连接更新 SQL 中的字段?的详细内容。更多信息请关注PHP中文网其他相关文章!