Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine Tabelle mit der Summe der Werte aus einer anderen Tabelle in SQL aktualisieren?

Wie kann ich eine Tabelle mit der Summe der Werte aus einer anderen Tabelle in SQL aktualisieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-18 02:37:14215Durchsuche

How Can I Update a Table with the Sum of Values from Another Table in SQL?

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:

  • Die Unterabfrage berechnet die Gesamtsumme für jeden eindeutigen Wert in Tabelle2.Feld3.
  • Das aktualisierte Ergebnis, gespeichert als Feld2Summe, wird mithilfe der gemeinsamen Spalte wieder mit Tabelle1 verknüpft Feld3.
  • Die JOIN-Bedingung stellt sicher, dass der SUM-Wert aus Tabelle2 der richtigen entsprechenden Zeile in Tabelle1 zugewiesen wird.

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!

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