我必须更新一个字段,其值由3个表的连接返回 .
例:
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
我想更新表 item_master
的 mf_item_number
字段值与在上述条件下连接的其他值 .
如何在MS SQL Server中执行此操作?
9 回答
试试这样......
没有使用上面的sql,但这里是一个基于连接语句更新表的示例 .
为了清楚起见......
UPDATE
子句可以引用FROM
子句中指定的表别名 . 所以im
在这种情况下是有效的通用示例
将其改编为MySQL -
UPDATE
中没有FROM
子句,但这有效:您可以使用MERGE Command更新对
MATCHED
和NOT MATCHED
的更多控制:(我略微更改了源代码以演示我的观点)最简单的方法之一是使用公用表表达式(因为您已经在SQL 2005上):
查询执行引擎将自己弄清楚如何更新记录 .
您可以使用以下查询:
您可以使用UPDATE语句中的“FROM”子句指定用于确定更新方式和更新内容的其他表,如下所示:
在WHERE子句中,您需要提供条件和连接操作以将这些表绑定在一起 .
渣