Heim  >  Artikel  >  Datenbank  >  Wie behebe ich einen Unterabfragefehler in einer MySQL-Update-Abfrage?

Wie behebe ich einen Unterabfragefehler in einer MySQL-Update-Abfrage?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-27 05:35:02237Durchsuche

How to Fix a Subquery Error in a MySQL Update Query?

MySQL-Unterabfragefehler in der Aktualisierungsabfrage

Bei der bereitgestellten Abfrage tritt ein Fehler aufgrund einer falschen Syntax bei der Verknüpfung der Unterabfrage mit der äußeren Aktualisierungsanweisung auf. Das Problem entsteht, weil die WHERE-Klausel in der äußeren Aktualisierung vor der Ausführung der inneren Unterabfrage angewendet wird.

Um dieses Problem zu beheben, benötigen wir einen unten dargestellten Multi-Table-Update-Ansatz:

UPDATE
  Competition AS C
INNER JOIN (
  SELECT
    CompetitionId,
    COUNT(*) AS NumberOfTeams
  FROM
    PicksPoints AS P
  WHERE
    UserCompetitionID IS NOT NULL
  GROUP BY
    CompetitionID
) AS A
  ON C.CompetitionID = A.CompetitionID
SET
  C.NumberOfTeams = A.NumberOfTeams

In dieser angepassten Abfrage:

  • Wir fügen einen INNER JOIN zwischen der Competition-Tabelle (alias „C“) und einer Unterabfrage (als „A“) ein, die die gewünschten Zählungen zurückgibt.
  • Die Bedingung in der ON-Klausel verknüpft C.CompetitionID mit A.CompetitionID und stellt so die ordnungsgemäße Zuordnung zwischen den Zeilen sicher.
  • Die SET-Klausel aktualisiert die Spalte NumberOfTeams in der Competition-Tabelle mit den Ergebnissen der Unterabfrage.

Diese überarbeitete Abfrage aktualisiert effektiv die Wettbewerbstabelle mit den korrekten Teamzahlen und behebt den vorherigen Syntaxfehler.

Das obige ist der detaillierte Inhalt vonWie behebe ich einen Unterabfragefehler in einer MySQL-Update-Abfrage?. 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