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

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

Patricia Arquette
Freigeben: 2024-10-27 05:35:02
Original
359 Leute haben es durchsucht

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage