Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich MySQL-Tabellendaten basierend auf den Werten einer anderen Tabelle?

Wie aktualisiere ich MySQL-Tabellendaten basierend auf den Werten einer anderen Tabelle?

Barbara Streisand
Barbara StreisandOriginal
2025-01-17 04:47:09819Durchsuche

How to Update MySQL Table Data Based on Another Table's Values?

MySQL-Tabellendaten basierend auf Werten aus einer anderen Tabelle aktualisieren

Angenommen, Sie haben zwei Tabellen mit ähnlicher Struktur, TabelleA und TabelleB:

id name value
1 Joe 22
2 Derk 30

Die Aufgabe besteht darin, den Wert der Wertespalte von TabelleA basierend auf den übereinstimmenden Namenswerten in den beiden Tabellen in die Wertespalte von TabelleB zu kopieren.

Dazu können Sie die folgende MySQL UPDATE-Anweisung verwenden:

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

Diese Anweisung führt eine INNER JOIN-Operation zwischen TabelleA und TabelleB basierend auf der Namensspalte durch und aktualisiert die Wertespalte in TabelleB mit dem entsprechenden Wert in TabelleA.

Bedingungsbasierte dynamische Wertaktualisierung:

Wenn Sie die Wertespalte in Tabelle B basierend auf dem Wert in Tabelle A dynamisch aktualisieren müssen, können Sie die folgende Methode verwenden:

<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>

Hier prüft die Funktion IF(), ob tableA.value größer als 0 ist. Wenn true, setzen Sie tableB.value auf den Wert von tableA.value; andernfalls behalten Sie den ursprünglichen Wert in tableB bei.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich MySQL-Tabellendaten basierend auf den Werten 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