Verwendung von UPDATE JOIN in MySQL
In diesem Tutorial wird die Verwendung der Anweisung UPDATE JOIN
in einer MySQL-Datenbank vorgestellt.
Wir verwenden im Allgemeinen JOIN
, um Zeilen in einer bestimmten Tabelle zu durchlaufen, die ähnliche Zeilen in einer anderen Tabelle hat oder nicht. Wir können die Klausel JOIN
zusammen mit der Anweisung UPDATE
verwenden, um mehrere Tabellenaktualisierungen zu implementieren.
Die grundlegende Syntax von MySQL UPDATE JOIN
lässt sich wie folgt veranschaulichen.
UPDATE Table_1, Table_2,
[INNER JOIN] Table_1 ON Table_1.Column_1 = Table_2. Column_1
SET Table_1.Column_2 = Table_2.Column_2,
Table_2.Column_3 = expression
WHERE condition
Die obige Syntax funktioniert wie folgt für eine bestimmte Tabelle in MySQL.
- Wir beginnen unsere Arbeit, indem wir die Haupttabelle namens
Table_1
und die Tabelle, die wir mit der Haupttabelle verbinden wollen, alsTable_2
angeben. Die in derUPDATE
-Klausel erwähnte Tabelle wird aktualisiert, und die Daten in der nach derUPDATE
-Klausel nicht erwähnten Tabelle werden nicht geändert. - Sobald wir das getan haben, müssen wir die Art der Verknüpfung angeben, die wir verwenden möchten. In der obigen Syntax haben wir den
INNER
-Join verwendet. Dieser Join muss unmittelbar nach derUPDATE
-Klausel kommen. - Nachdem wir Werte für die Spalten bereitgestellt haben, die wir aktualisieren möchten, erwähnen wir eine
WHERE
-Klausel, um eine bestimmte Bedingung für die Aktualisierung anzugeben.
Es gibt eine weitere Möglichkeit, diese Methode zu verwenden, die wie folgt veranschaulicht werden kann.
UPDATE Table_1, Table_2
SET Table_1.column_2 = Table_2.column_2,
Table_2.column_3 = expr
WHERE Table_1.column_1 = Table_2.column_1 AND condition
Bevor wir beginnen, erstellen wir zwei Tabellen, mit denen wir arbeiten können. Wir werden diese Tabellen student_details
und marks
nennen. Diese Tabellen können mit dem folgenden Code erstellt werden.
CREATE TABLE marks (
performance INT(11) NOT NULL,
percentage FLOAT NOT NULL,
PRIMARY KEY (performance)
);
CREATE TABLE student_details (
stu_id INT(11) NOT NULL AUTO_INCREMENT,
stu_name VARCHAR(255) NOT NULL,
performance INT(11) DEFAULT NULL,
total FLOAT DEFAULT NULL,
PRIMARY KEY (emp_id),
CONSTRAINT fk_performance FOREIGN KEY (performance)
REFERENCES marks (performance)
);
INSERT INTO marks(performance,percentage)
VALUES(1,0),
(2,0.01),
(3,0.03),
(4,0.05),
(5,0.08);
INSERT INTO student_details(stu_name,performance,total)
VALUES('Preet Sanghavi', 1, 50000),
('Joe Sand', 3, 65000),
('Su Greens', 4, 75000),
('Gray Dellop', 5, 125000),
('Neon Jonty', 3, 85000),
('Peter Foe', 2, 45000),
('Little Wayne', 3, 55000);
Um die Tabelle student_details
zu visualisieren, verwenden wir den folgenden Code.
SELECT * FROM student_details;
Der obige Code würde die folgende Ausgabe ergeben.
stu_id stu_name stu_performance total
1 Preet Sanghavi 1 50000
2 Joe Sand 3 65000
3 Su Greens 4 75000
4 Gray Dellop 5 125000
5 Neon Jonty 3 85000
6 Peter Foe 2 45000
7 Little Wayne 3 55000
In ähnlicher Weise können wir die Tabelle marks
visualisieren.
SELECT * FROM marks;
Der obige Code würde die folgende Ausgabe ergeben.
performance percentage
1 0
2 0.01
3 0.03
4 0.05
5 0.08
Wie wir aus den obigen Codeblöcken sehen können, befindet sich der Prozentwert in der Tabelle marks
, und wir müssen den UPDATE JOIN
mit INNER JOIN
als Haupt-Join verwenden, um die total
jedes Schülers anzupassen die Tabelle student_details
basierend auf den Werten von percentage
und performance
in der Tabelle marks
.
Hinweis: Es ist wichtig zu beachten, dass die Brücke zwischen den beiden Tabellen student_details
und marks
die Spalte performance
ist.
Lassen Sie uns nun die Anweisung UPDATE JOIN
in Aktion sehen.
Verwenden der Anweisung UPDATE JOIN
in MySQL
Wir können den Update-Vorgang wie oben beschrieben mit der folgenden Abfrage durchführen.
UPDATE student_details
INNER JOIN
marks ON student_details.performance = marks.performance
SET
total = total + total * percentage;
Hier ist die Tabelle student_details
die Haupttabelle, in der der Wert von total
aktualisiert werden muss.
Hinweis: Da wir die WHERE
-Klausel in der UPDATE
-Anweisung in der oben erwähnten Abfrage loswerden, werden alle Datensätze in der student_details
-Tabelle basierend auf der SET
-Bedingung geändert.
Die Ausgabe der oben erwähnten Abfrage würde die folgenden Ergebnisse liefern.
stu_id stu_name stu_performance total
1 Preet Sanghavi 1 50000
2 Joe Sand 3 66950
3 Su Greens 4 78750
4 Gray Dellop 5 135000
5 Neon Jonty 3 87550
6 Peter Foe 2 45450
7 Little Wayne 3 56650
Wie wir im obigen Codeblock sehen können, wird die total
jedes Schülers basierend auf seiner/ihrer performance
in der marks
-Tabelle aktualisiert.
So können wir mit Hilfe der oben erwähnten Technik Update Join
in MySQL effizient nutzen.
Verwandter Artikel - MySQL Join
- LEFT JOIN für mehrere Spalten in MySQL
- Verbinden 3 Tabellen in MySQL
- Löschen mit Join in MySQL
- Ausführen mehrerer Joins in einer Abfrage in MYSQL