SQL Update nach dem Beitritt zu zwei Tabellen

8

Ich bin neu in SQL und verwende Microsoft SQL Server Management Studio.

Ich versuche, eine SQL-Anweisung zu schreiben, die eine Aktualisierung durchführt, nachdem zwei Tabellen verbunden sind.

Ich habe zwei Tabellen: myTable1 und myTable2 . Beide teilen ein Feld MyID , welches das Feld ist, an dem ich mich beteilige. myTable1 enthält eine Spalte namens BitToUpdate . Und MyTable2 enthält eine Spalte namens BitToCheck .

Ich möchte BitToUpdate in myTable1 auf 1 setzen, wobei BitToCheck in myTable2 ebenfalls 1 ist.

Hier ist was ich habe:

%Vor%

Also habe ich zuerst versucht, die beiden Tabellen myTable1 und myTable2 mit ihren IDs zu verbinden und das Ergebnis in einer temporären Tabelle zu speichern.

Als nächstes möchte ich BitToUpdate auf 1 setzen, wobei BitToCheck 1 ist.

Um das in der temporären Tabelle zu tun, habe ich:

%Vor%

Dies aktualisiert die BitToUpdate erfolgreich in #temp_table. Wenn ich jedoch eine Auswahl auf myTable1 anwähle, finde ich, dass BitToUpdate nicht geändert wird. Ich nehme an, das macht Sinn, da #temp_table nicht wirklich ein "Zeiger" ist ....

Aber was wäre der richtige Weg, um diese Verbindung und Aktualisierung zu erreichen?

    
Rhs 18.03.2013, 16:10
quelle

4 Antworten

14

Sie müssen hier kein LEFT JOIN verwenden, da Sie eine Bedingung aus Tabelle 2 überprüfen, also sollte ein INNER JOIN hier besser sein.

%Vor%     
Lamak 18.03.2013, 16:17
quelle
4

Was Sie in Ihrer ersten Abfrage tun, ist das Aktualisieren einer temporären Tabelle namens #temp . Die Aktualisierungen gehen niemals in die tatsächliche Tabelle myTable1 oder mayTable2 . Um Datensätze beim Verbinden mit anderen Tabellen zu aktualisieren, versuchen Sie Folgendes:

%Vor%     
Mortalus 18.03.2013 16:14
quelle
1
%Vor%     
Jimbo 18.03.2013 16:15
quelle
0
%Vor%     
rbedger 18.03.2013 16:16
quelle

Tags und Links