Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich den Wert einer MySQL-Spalte basierend auf Daten aus einer anderen Tabelle?

Wie aktualisiere ich den Wert einer MySQL-Spalte basierend auf Daten aus einer anderen Tabelle?

DDD
DDDOriginal
2025-01-17 05:01:10427Durchsuche

How to Update a MySQL Column's Value Based on Data from Another Table?

MySQL: Spaltenwert basierend auf Daten aus einer anderen Tabelle aktualisieren

Frage:

Angenommen, es gibt zwei Tabellen mit ähnlichen Strukturen:

id name value
1 Joe 22
2 Derk 30

Die Aufgabe besteht darin, die Spalte „Wert“ in Tabelle B mit dem Wert in Tabelle A basierend auf dem passenden „Name“-Wert zu aktualisieren.

Lösung:

Sie können die SQL UPDATE-Anweisung mit einer JOIN-Klausel verwenden, um diesen Aktualisierungsvorgang durchzuführen. Hier ist eine mögliche Abfrage:

<code class="language-sql">UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = tableA.value;</code>

Diese Abfrage aktualisiert die Spalte „Wert“ aller Zeilen in Tabelle B, die mit Tabelle A übereinstimmen, basierend auf der Spalte „Name“.

Dynamische Wertaktualisierung:

Sie können die Abfrage ändern, um Tabelle B.value basierend auf den Werten in Tabelle A.value dynamisch zu aktualisieren. Beispielsweise aktualisiert die folgende Abfrage Tabelle B.value nur, wenn Tabelle A.value größer als 0 ist:

<code class="language-sql">UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = IF(tableA.value > 0, tableA.value, tableB.value)
WHERE tableA.name = 'Joe';</code>

In diesem Beispiel wird die Spalte „Wert“ in der Zeile mit „Name“ „Joe“ in Tabelle B nur dann mit dem Wert aus Tabelle A aktualisiert, wenn der Wert in Tabelle A größer als 0 ist. Ansonsten bleiben die bestehenden Werte in Tabelle B unverändert.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich den Wert einer MySQL-Spalte basierend auf Daten aus einer anderen Tabelle?. 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