Mehrdeutiger Spaltenname mit SQL Join -Abfrage

Mehrdeutiger Spaltenname mit SQL Join -Abfrage
Ein häufiger Fehler bei der Durchführung von SQL -Verknüpfungen ist der Fehler "mehrdeutiger Spalten". Diese Art von Fehler tritt auf, wenn Sie versuchen, sich in zwei oder mehr Tabellen anzuschließen, und in mehr als einer der Tabellen wird mehr als eine Spalte derselben Namen angezeigt. In diesem kurzen Artikel wird erläutert.

Was verursacht diesen Fehler?

Der beste Ort, um zu beginnen, ist zu verstehen, was ein Problem verursacht. Der Fehler wird hauptsächlich verursacht, wenn eine Spalte mit demselben Namen in mehr als einer Tabelle angezeigt wird, wenn ein Join durchgeführt wird.

Um zu veranschaulichen, wie dieser Fehler auftritt, haben wir zwei Tabellen, wie in den folgenden Abfragen gezeigt:

Tabelle erstellen my_table (
ID Int Auto Incrospury Primärschlüssel,
full_name varchar (255),
Lang Varchar (100)
);
Tabelle erstellen my_table_1 (
ID Int Auto Inchlement,
full_name varchar (255),
Gehaltsgeld
);

Hier haben wir zwei Tabellen: my_table und my_table_1. Beachten Sie, dass beide Tabellen eine Full_Name -Spalte haben. Ignorieren Sie die ID-Spalte, da dies eine automatische Spalte ist.

Wenn wir versuchen, eine Verbindung in den beiden Tischen zu betreiben:

Wählen Sie Full_Name, Lang, full_name, Gehalt von my_table x Inner Join my_table_1 y auf x.id = y.Ausweis;

Die obige Abfrage gibt einen "mehrdeutigen Spaltennamen" -Fehler zurück. Obwohl die Fehlermeldung je nach Datenbankmotor variieren kann, ist die Ausgabe eng ähnlich.

Das Folgende zeigt denselben Fehler, der in der PostgreSQL -Datenbank -Engine gedruckt wurde.

Fehler: Spaltenreferenz "full_name" ist mehrdeutig

Dies führt dazu, dass SQL mit welchem ​​Full_Name Sie verwechselt wird.

SQL Lösen Sie mehrdeutigen Spaltennamenfehler

Um diesen Fehler zu lösen, können wir Aliase für die Spalten hinzufügen, die Unklarheiten verursachen. Zum Beispiel können wir die Abfrage als:

Wählen Sie x.full_name, lang, y.full_name, Gehalt von my_table x innere join my_table_1 y auf x.id = y.Ausweis;

Hier fügen wir Aliase für die Spalten hinzu, wobei X my_table und y my_table_1 darstellt.

Das obige sollte den Fehler beheben und es Ihnen ermöglichen, den Join auszuführen, ohne die Spaltennamen zu ändern.

Schließen

In diesem Tutorial löste man den Fehler "mehrdeutiger Spaltenname" in SQL.