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!