SORU
11 HAZİRAN 2009, PERŞEMBE


SQL update birleşimler kullanarak sorgu

3 birleştirme tablolar tarafından döndürülen değeri olan bir alanı güncelleştirmek için var.

Örnek:

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

Yukarıdaki durumda katılmış olan Tablo mf_item_number alan değerleri 5* *başka bir değer ile güncellemek istiyorum.

Nasıl MS SQL Server bunu yapabilir miyim?

CEVAP
11 HAZİRAN 2009, PERŞEMBE


Edit: katılır ANSI değişti

UPDATE
    im
SET
    mf_item_number = gm.SKU --etc
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

Düzen, Kasım 2011

Bunu açıklığa kavuşturmak için... UPDATE yan tümce bir tablo için bir diğer ad FROM yan tümce belirtilen başvuru yapabilirsiniz. Bu durumda im geçerlidir

Düzen, 2012 Ağu

Genel örnek

UPDATE
    A
SET
    foo = B.bar
FROM
    TableA A
    JOIN
    TableB B ON A.col1 = B.colx
WHERE
    ...

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Break

    Break

    10 Aralık 2005
  • ibebrent

    ibebrent

    23 Temmuz 2007
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010