猿问

使用联接的SQL更新查询

使用联接的SQL更新查询

我必须用一个值更新一个字段,该值由3个表的联接返回。

例子:

select
    im.itemid    ,im.sku as iSku    ,gm.SKU as GSKU    ,mm.ManufacturerId as ManuId    ,mm.ManufacturerName    
    ,im.mf_item_number    ,mm.ManufacturerIDfrom 
    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

我想更新mf_item_number表的字段值item_master在上述条件下加入的其他值。

如何在MSSQLServer中做到这一点?


明月笑刀无情
浏览 653回答 3
3回答

幕布斯7119047

UPDATE imSET mf_item_number = gm.SKU --etcFROM item_master imJOIN group_master gm    ON im.sku = gm.sku  JOIN Manufacturer_Master mm    ON gm.ManufacturerID = mm.ManufacturerIDWHERE im.mf_item_number like 'STA%' AND       gm.manufacturerID = 34说清楚.。这个UPDATE子句中指定的表别名。FROM条款。所以im在这种情况下是有效的通用示例UPDATE ASET foo = B.barFROM TableA AJOIN TableB B    ON A.col1 = B.colxWHERE ...

慕容3067478

适应MySQL-没有FROM分句UPDATE,但这是可行的:UPDATE     item_master im    JOIN     group_master gm ON im.sku=gm.sku      JOIN     Manufacturer_Master mm ON gm.ManufacturerID=mm.ManufacturerIDSET     im.mf_item_number = gm.SKU --etcWHERE     im.mf_item_number like 'STA%'     AND     gm.manufacturerID=34
随时随地看视频慕课网APP
我要回答