使用 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中文网其他相关文章!