Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich eine verbundene Tabelle in MySQL, wenn die Zieltabelle nicht an erster Stelle steht?

Wie aktualisiere ich eine verbundene Tabelle in MySQL, wenn die Zieltabelle nicht an erster Stelle steht?

Linda Hamilton
Linda HamiltonOriginal
2024-11-29 18:44:11244Durchsuche

How to Update a Joined Table in MySQL When the Target Table Isn't First?

Aktualisieren einer verbundenen Tabelle in MySQL mit umgekehrter Tabellenreihenfolge

Die Aufgabe, eine Tabelle zu aktualisieren, die an einer Join-Anweisung beteiligt ist, kann eine Herausforderung sein, wenn die Die gewünschte Tabelle steht nicht am Anfang. In MySQL unterscheidet sich im Gegensatz zu SQL Server die Syntax für Aktualisierungen mehrerer Tabellen, wodurch dieses Problem behoben wird.

Betrachten Sie das folgende Beispiel, bei dem das Ziel darin besteht, Tabelle „b“ zu aktualisieren:

UPDATE b
FROM tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;

In MySQL gibt die Syntax der UPDATE-Anweisung mit einer JOIN-Klausel nicht die zu aktualisierende Tabelle an. Stattdessen wird es implizit durch die SET-Klausel bestimmt.

Um das gewünschte Update zu erreichen, kann daher die folgende überarbeitete Syntax verwendet werden:

UPDATE tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;

Es ist wichtig zu beachten, dass das UPDATE mit JOIN Die Syntax ist nicht Teil der Standard-SQL-Spezifikation und sowohl MySQL als auch Microsoft SQL Server haben ihre eigenen Variationen implementiert.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich eine verbundene Tabelle in MySQL, wenn die Zieltabelle nicht an erster Stelle steht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn