Aggregation in SQL-UPDATE-Abfragen: Eine übersichtliche Lösung
Bei Datenbankoperationen kann die Aktualisierung von Tabellenwerten basierend auf Aggregatfunktionen eine Herausforderung darstellen. Lassen Sie uns ein häufiges Szenario untersuchen, bei dem das Ziel darin besteht, den Wert in einer Tabelle auf die Summe der Werte in einer anderen Tabelle zu setzen.
Betrachten Sie die folgende Abfrage:
UPDATE table1 SET field1 = SUM(table2.field2) FROM table1 INNER JOIN table2 ON table1.field3 = table2.field3 GROUP BY table1.field3
Diese Abfrage ist zwar intuitiv, aber dennoch intuitiv schlägt aufgrund von zwei wichtigen Einschränkungen fehl: SET unterstützt keine Aggregatfunktionen wie SUM und GROUP BY ist in UPDATE-Abfragen nicht zulässig.
Um dieses Problem zu beheben, können wir a verwenden Unterabfrage, um die Gesamtsumme zu berechnen und dann den aktualisierten Wert in der UPDATE-Abfrage zu verwenden.
UPDATE t1 SET t1.field1 = t2.field2Sum FROM table1 t1 INNER JOIN (select field3, sum(field2) as field2Sum from table2 group by field3) as t2 on t2.field3 = t1.field3
In dieser verfeinerten Abfrage:
Mit diesem Ansatz können Sie erfolgreich aggregierte Aktualisierungen in SQL durchführen und die gewünschten Datenmanipulationsergebnisse erzielen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Tabelle mit der Summe der Werte aus einer anderen Tabelle in SQL aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!