Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie behebe ich eine MySQL-UPDATE-Abfrage mit Unterabfragefehler: Alias-Referenzprobleme?

Mary-Kate Olsen
Freigeben: 2024-10-27 07:50:03
Original
837 Leute haben es durchsucht

How to Fix a MySQL UPDATE Query with Subquery Error: Alias Reference Issues?

Korrektur eines Fehlers in der MySQL-UPDATE-Abfrage mit Unterabfrage

Die bereitgestellte Abfrage beinhaltet die Aktualisierung des NumberOfTeams-Felds in der Competition-Tabelle mithilfe einer Unterabfrage. Allerdings stößt der Benutzer auf einen Fehler aufgrund eines Syntaxproblems.

Das Problem liegt in der falschen Verwendung eines Alias ​​(a) in der WHERE-Klausel der UPDATE-Anweisung. In MySQL sind Aliase nur im Rahmen der Unterabfrage selbst gültig. Daher ist die Bezugnahme auf den Alias ​​a in der WHERE-Klausel ungültig.

Lösung mit Multi-Table-Update

Um dieses Problem zu beheben, kann ein Multi-Table-Update eingesetzt werden . Dazu muss die Wettbewerbstabelle mit einer Unterabfrage verknüpft werden, die die Anzahl der Teams für jeden Wettbewerb berechnet. Die Verknüpfung wird mithilfe der Spalte „CompetitionID“ durchgeführt und die aktualisierten Werte werden dann basierend auf der verknüpften Unterabfrage festgelegt.

<code class="sql">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;</code>
Nach dem Login kopieren

Die Unterabfrage berechnet die Anzahl der Teams für jeden Wettbewerb, die dann zur Aktualisierung von NumberOfTeams verwendet wird Spalte in der Hauptwettbewerbstabelle. Diese Methode stellt sicher, dass die Ergebnisse der Unterabfrage in der Aktualisierungslogik korrekt referenziert werden.

Beispiel und Demonstration

Eine Demo dieser korrigierten Abfrage kann unter http:// angesehen werden. www.sqlfiddle.com/#!2/a74f3/1. Durch das Ausführen dieser Abfrage wird die Wettbewerbstabelle erfolgreich mit der richtigen Anzahl von Teams für jeden Wettbewerb aktualisiert.

Das obige ist der detaillierte Inhalt vonWie behebe ich eine MySQL-UPDATE-Abfrage mit Unterabfragefehler: Alias-Referenzprobleme?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!