Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie behebt man den MySQL-Fehler „Tabelle zweimal angegeben' beim Aktualisieren und Abfragen derselben Tabelle?

Mary-Kate Olsen
Freigeben: 2024-11-11 20:48:02
Original
452 Leute haben es durchsucht

How to Resolve MySQL Error

Fehler: Tabelle zweimal in MySQL-Abfrage angegeben

In MySQL, wenn versucht wird, eine Tabelle zu aktualisieren und sie gleichzeitig als Datenquelle darin zu verwenden Bei derselben Abfrage kann der Fehler „Tabelle ‚m1‘ wird zweimal angegeben, sowohl als Ziel für ‚UPDATE‘ als auch als separate Quelle für Daten“ auftreten. Dieser Fehler ist auf die Einschränkungen von MySQL bei der Verarbeitung solcher Abfragen zurückzuführen.

Um dieses Problem zu beheben, erfordert MySQL, dass Benutzer nicht den Alias ​​der Tabelle direkt in der Unterabfrage verwenden, sondern aus einer abgeleiteten Tabelle auswählen. Dazu gehört das Erstellen einer temporären Tabelle basierend auf der Originaltabelle und das Verweisen auf die abgeleitete Tabelle in der Unterabfrage.

Überarbeitete Abfrage:

Hier ist eine überarbeitete Version der Abfrage verwendet eine abgeleitete Tabelle, um den Fehler zu umgehen:

UPDATE manager
SET status = 'Y'
WHERE branch_id IN
(
  SELECT branch_id
  FROM (SELECT * FROM manager) AS m2
  WHERE (branch_id, year) IN
  (
    SELECT branch_id, year
    FROM branch_master
    WHERE type = 'finance'
  )
);
Nach dem Login kopieren

Durch Auswahl aus der abgeleiteten Tabelle (gekennzeichnet durch „(SELECT * FROM manager) AS m2") vermeidet die Abfrage die Mehrdeutigkeit, die den vorherigen Fehler verursacht hat. Die abgeleitete Tabelle fungiert als unabhängige Datenquelle und ermöglicht es der Abfrage, auf die Tabelle sowohl als Ziel für die Aktualisierung als auch als Datenquelle für die Unterabfrage zu verweisen.

Das obige ist der detaillierte Inhalt vonWie behebt man den MySQL-Fehler „Tabelle zweimal angegeben' beim Aktualisieren und Abfragen derselben Tabelle?. 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