Heim > Datenbank > MySQL-Tutorial > Wie behebe ich den Fehler „Spaltenreferenz ist mehrdeutig' in SQL-SELECT-Anweisungen?

Wie behebe ich den Fehler „Spaltenreferenz ist mehrdeutig' in SQL-SELECT-Anweisungen?

DDD
Freigeben: 2025-01-18 07:47:07
Original
289 Leute haben es durchsucht

How to Resolve

Mehrdeutige Spaltenreferenz in der SQL-SELECT-Anweisung

In SQL kommt es zu Mehrdeutigkeiten, wenn mehrere Spalten in verschiedenen Tabellen, die an einer Abfrage beteiligt sind, denselben Namen haben. Wenn diese Spalten ausgewählt werden, sind die von der Abfrage referenzierten Spalten mehrdeutig, was zu Fehlern wie „Mehrdeutige Spaltenreferenz“ führt.

Problembeschreibung

Wenn Sie versuchen, die folgende SELECT-Anweisung auszuführen, werden Sie auf folgendes Problem stoßen:

<code class="language-sql">SELECT (id,name) 
FROM v_groups vg 
INNER JOIN people2v_groups p2vg 
  ON vg.id = p2vg.v_group_id
WHERE p2vg.people_id = 0;</code>
Nach dem Login kopieren

Diese Abfrage versucht, die ID- und Namensspalten aus der v_groups-Tabelle abzurufen. Es wird jedoch die Fehlermeldung zurückgegeben: „Die Spaltenreferenz-ID ist mehrdeutig“.

Ursache der Unklarheit

Die Mehrdeutigkeit entsteht, weil sowohl die Tabellen v_groups als auch people2v_groups eine Spalte mit dem Namen id enthalten. Ohne Angabe eines Tabellennamens oder Alias ​​kann die Abfrage nicht bestimmen, welche ID-Spalte abgerufen werden soll.

Lösung

Um Mehrdeutigkeiten aufzulösen, geben Sie im SELECT-Teil der Abfrage explizit den Tabellennamen oder Alias ​​vor dem Spaltennamen an. Dadurch wird der Datenbank klar, welche ID-Spalte verwendet werden soll.

Korrigierte Abfrage:

<code class="language-sql">SELECT (vg.id, name)
FROM v_groups vg 
INNER JOIN people2v_groups p2vg 
  ON vg.id = p2vg.v_group_id
WHERE p2vg.people_id = 0;</code>
Nach dem Login kopieren

Durch das Hinzufügen von vg. vor id verweist die Abfrage explizit auf die ID-Spalte in der v_groups-Tabelle, wodurch die Mehrdeutigkeit beseitigt wird und die Abfrage erfolgreich ausgeführt werden kann.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Spaltenreferenz ist mehrdeutig' in SQL-SELECT-Anweisungen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage