Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich den Wert einer MySQL-Spalte basierend auf Daten aus einer anderen Tabelle?
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!