2016-10-07 9 views
0

Ich habe 2 Tabellen aktualisiert werden. Ich werde drei Tabellen alsAktualisieren Sie zwei Tabellen mit SQL

  • Feld 'X', die in Tabelle A zu berücksichtigen habe, sind in Tabelle C
  • Feld 'Y', die in Tabelle B sind in Tabelle C

so würde ich mag eine Spalte in der Tabelle A und Tabelle B aktualisieren basierend auf dem Zustand

if TABLE A.X = TABLE C.X 
    AND TABLE B.Y = TABLE C.Y 

Lassen Sie uns wissen, wie es weitergeht. Wie ein Neuling nicht in der Lage, herauszufinden, wie es codiert werden kann

+5

Welche DBMS verwenden Sie? Und bitte [bearbeiten] Sie Ihre Frage fügen Sie die 'create table' Anweisungen für die fraglichen Tabellen einige Beispieldaten und die erwartete Ausgabe hinzu. [_Formatted_] (http://stackoverflow.com/editing-help#code) ** Text ** bitte, [keine Screenshots] (http://meta.stackoverflow.com/questions/285551/why-may-i -nicht-Upload-Bilder-von-Code-auf-so-wenn-eine Frage zu stellen/285557 # 285557) –

+0

Fügen Sie Beispieltabellendaten hinzu und zeigen Sie uns auch die aktualisierten Versionen an. – jarlh

Antwort

0

Sie können nicht zwei Tabellen in einer einzigen Abfrage aktualisieren. Schreiben Sie separate Abfragen, um jede Tabelle mit der angegebenen Bedingung zu aktualisieren.

Wenn Sie SQL Server verwenden, verwenden Sie die folgenden Skripts.

Update-Skript für Tabelle TABLEA

UPDATE t1 
    SET t1.[ColumnYouWantedToUpdate]=[Value] 
FROM TABLEA t1 
    JOIN TABLEC t2 ON t1.X=t2.X 
    JOIN TABLEB t3 ON t2.Y=t3.Y 

Update-Skript für Tabelle TABLEB

UPDATE t3 
    SET t3.[ColumnYouWantedToUpdate]=[Value] 
    FROM TABLEB t1 
    JOIN TABLEC t2 ON t1.X=t2.X 
    JOIN TABLEB t3 ON t2.Y=t3.Y 
0
-- maybe like this :) 

    BEGIN TRY 
    BEGIN TRAN 
update TABLE A set (--any field which an updated) 
where EXISTS 
(
select * from TableA A inner join TableC C on A.X =C.X inner join 
TableB B on B.Y = C.Y 
) 

update TABLE B set (--any field which an updated) 
where EXISTS 
(
select * from TableA A inner join TableC C on A.X =C.X inner join 
TableB B on B.Y = C.Y 
) 
    COMMIT TRAN 
    END TRY 
    BEGIN CATCH 
    ROLLBACK TRAN 
    END CATCH 
Verwandte Themen