799 Stimmen

SQL-Update-Abfrage mit Joins

Ich muss ein Feld mit einem Wert aktualisieren, der durch eine Verknüpfung von 3 Tabellen zurückgegeben wird.

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

Ich möchte die mf_item_number Feldwerte der Tabelle item_master mit einem anderen Wert, der mit der obigen Bedingung verbunden ist.

Wie kann ich dies in MS SQL Server tun?

7voto

Vinod Joshi Punkte 7388

MySQL: Nehmen Sie im Allgemeinen die notwendigen Änderungen für Ihre Anforderungen vor:

UPDATE
    shopping_cart sc
    LEFT JOIN
    package pc ON sc. package_id = pc.id    
SET
    sc. amount = pc.amount

5voto

vishwampandya Punkte 835

Es ist sehr einfach, mit einer Join-Abfrage in SQL zu aktualisieren, Sie können es tun sans mit FROM Klausel. Hier ist ein Beispiel:

    UPDATE customer_table c 

      JOIN  
          employee_table e
          ON c.city_id = e.city_id  
      JOIN 
          anyother_ table a
          ON a.someID = e.someID

    SET c.active = "Yes"

    WHERE c.city = "New york";

4voto

Sie können die folgende Abfrage verwenden:

UPDATE im
SET mf_item_number = (some value) 
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    `sql`

2voto

Ankitkumar Tandel Punkte 311

Versuchen Sie es so...

Update t1.Column1 = value 
from tbltemp as t1 
inner join tblUser as t2 on t2.ID = t1.UserID 
where t1.[column1]=value and t2.[Column1] = value;

2voto

Bhadresh Patel Punkte 1117

Wenn Sie SQL Server verwenden, können Sie eine Tabelle von einer anderen Tabelle aus aktualisieren, ohne eine Verknüpfung anzugeben, und die beiden Tabellen einfach über die Where-Klausel miteinander verbinden. Dadurch wird die SQL-Abfrage viel einfacher:

 UPDATE Table1
    SET Table1.col1 = Table2.col1,
        Table1.col2 = Table2.col2
    FROM
        Table2
    WHERE
        Table1.id = Table2.id

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X