Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich eine Tabelle in einer MySQL-Multi-Join-Anweisung?

Wie aktualisiere ich eine Tabelle in einer MySQL-Multi-Join-Anweisung?

Barbara Streisand
Barbara StreisandOriginal
2024-11-24 11:12:11856Durchsuche

How to Update a Table in a MySQL Multi-Join Statement?

Aktualisieren Sie eine MySQL-Tabelle in einer Multi-Join-Anweisung

Wenn Sie mit mehreren Joins in MySQL arbeiten, verstehen Sie die unterschiedliche Syntax zum Aktualisieren eines Joins Der Tisch ist entscheidend. Anders als in SQL Server verwendet MySQL einen besonderen Ansatz.

Problem:

Das Durchführen eines Aktualisierungsvorgangs für eine Tabelle, die an einer Reihe von Verknüpfungen beteiligt ist, kann bei Bedarf eine Herausforderung sein Tabelle ist nicht die erste in der Join-Reihenfolge.

Beispiel Abfrage:

Betrachten wir eine hypothetische Abfrage:

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;

Lösung:

In MySQL funktioniert die UPDATE-Syntax mit JOIN anders . Die zu aktualisierende Tabelle wird in der Anweisung nicht explizit angegeben; Stattdessen wird es aus der SET-Klausel abgeleitet. Daher wäre die richtige Abfrage:

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;

Wichtige Punkte:

  1. MySQLs UPDATE mit JOIN-Syntax erfordert keine FROM-Klausel.
  2. Die zu aktualisierende Tabelle wird in der SET-Klausel angegeben.
  3. Diese nicht standardmäßige Syntax ist a MySQL-spezifische Erweiterung.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich eine Tabelle in einer MySQL-Multi-Join-Anweisung?. 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