MySQL-Update Join für Cross-Tisch-Update

MySQL-Update Join für Cross-Tisch-Update

In den neuesten Versionen von MySQL können Sie ein Cross-Tisch-Update durchführen, das auch als Korrelationstabellen-Update bezeichnet wird, bei dem Sie zwei oder mehr Tabellen beitreten können. Mit MySQL Join (innerer und links) und aktualisierter Abfrage können wir in sehr einfachen Schritten ein Cross-Tisch-Update durchführen.

Dieses Tutorial führt Sie durch, wie Sie MySQL Cross-Tisch-Updates mit nativen MySQL-Befehlen durchführen können.

Grundlegende Syntax

Die allgemeine Syntax für ein grundlegendes MySQL -Update -Join -Abfrage lautet:

Aktualisieren Sie DB.Tabelle 1, db.Tabelle 2,
[Links Join | Innerer Join] DB.Tabelle 1 auf DB.Tabelle 1.Spalte1 = db.Tabelle 2.Spalte2
DB setzen.Tabelle 1.colum2 = db.Tabelle 2.Spalte2, db.Tabelle 2.Spalte3 = Ausdruck
Wo [Zustand]

Lassen Sie uns die obige Abfrage in kleinere Teile zerlegen, damit wir sie besser verstehen können.

Wir beginnen mit der Definition der Haupttabelle. In diesem Fall, (db.Tabelle 1) gefolgt von der Tabelle, die wir mit der Update -Anweisung in diesem Fall bei DB beitreten möchten.Tabelle 2.

NOTIZ: Es ist wichtig, mindestens eine Tabelle nach der Update -Anweisung anzugeben. Andernfalls werden die Zeilen in der Tabelle nach der Abfrage nicht aktualisiert.

Im zweiten Teil der Abfrage geben wir die spezifische Art von Join an, die wir ausführen möchten.e., Innere oder linksgerichtete und ein Juelsprädikat. Legen Sie die Join -Abfrage immer sofort nach der Update -Abfrage ein.

Ein Join -Prädikat ist eine spezifische Verbindungsbedingung, die einen Booleschen Wert bewertet.

Im folgenden Teil setzen wir neue Werte auf die Spalten von DB fest.Tabelle 1 und db.Tabelle 2.

Zuletzt setzen wir eine Bedingung mit der Where.

Beispiel Anwendungsfall

Angenommen, Sie haben zwei Tabellen, TB1 und TB2 genannt; Betrachten Sie eine Abfrage unten, um Tabellen zu erstellen und Daten hinzuzufügen.

Datenbank erstellen, wenn nicht existiert sample_db;
Verwenden sample_db;
Erstellen Sie Tabelle TB1 (
col1 int (11) nicht null,
col2 int nicht null,
Primärschlüssel (COL1)
);
Erstellen Sie Tabelle TB2 (
col1 int nicht null auto_increment,
col2 varchar (100) nicht null,
col3 int Standard Null,
col4 int Standard Null,
Primärschlüssel (COL1)
);
Einfügen in TB1 (COL1, COL2) -Werte (1,0), (2,1), (3,3), (4,4), (5,5);
In TB2 (COL2, COL3, COL4) einfügen ("First", 1, 500), ("Second", 2, 1000), ("Dritter", 3, 1500), ("Vierter", 4, 2000) , ("Fifth", 5, 2500);

In den mit der obigen Abfrage erstellten Tabellen können wir eine Update -Abfrage mit der inneren Join -Anweisung ausführen, da die Tabellen auf Col2 verknüpft sind.

Betrachten Sie die folgende Abfrage:

Verwenden sample_db;
Aktualisieren Sie TB2 Inner Join TB1 auf TB2.col3 = tb1.col1 set col3 = col4 + col4 * 5;

Da wir die Daten in der zweiten Tabelle (COL3) aktualisieren möchten, in der wir die Werte der Spalten erhalten und sich mit 5 multiplizieren, nehmen wir im obigen Beispiel die Bedingung aus, da wir alle Datensätze in der angegebenen Tabelle aktualisieren möchten.

Sie können dies mit der unten gezeigten Abfrage auswählen:

Wählen Sie * aus sample_db aus.TB2;

Die Ausgabe wie unten gezeigt:

mysql> aus sample_db auswählen.TB2;
+------+--------+-------+------+
| col1 | col2 | col3 | col4 |
+------+--------+-------+------+
| 1 | Zuerst | 3000 | 500 |
| 2 | Zweite | 6000 | 1000 |
| 3 | Dritter | 9000 | 1500 |
| 4 | Viertes | 12000 | 2000 |
| 5 | Fünfter | 15000 | 2500 |
+------+--------+-------+------+
5 Zeilen im Set (0.00 Sek.)

Abschluss

In diesem schnellen Tutorial haben wir besprochen, wie Sie die MySQL -Update -Join -Abfrage verwenden, mit der Sie Tabellen kombinieren und die Werte entsprechend aktualisieren können.

Um mehr darüber zu erfahren, wie Sie diese Funktion erweitern können, berücksichtigen Sie die unten angegebenen Ressourcen:

https: // dev.Mysql.com/doc/refman/8.0/en/Update.html

https: // dev.Mysql.com/doc/refman/8.0/en/join.html