Niejednoznaczna nazwa kolumny z zapytaniem SQL

Niejednoznaczna nazwa kolumny z zapytaniem SQL
Jednym z powszechnych błędów podczas wykonywania połączeń SQL jest błąd „niejednoznaczna nazwa kolumny”. Ten rodzaj błędu występuje, gdy próbujesz dołączyć do dwóch lub więcej tabel, a więcej niż jedna kolumna o tej samej nazwie pojawia się w więcej niż jednej z tabel. W tym krótkim artykule omówi się, jak rozwiązać ten błąd podczas wykonywania połączeń SQL.

Co powoduje ten błąd?

Najlepszym miejscem do rozpoczęcia jest zrozumienie, co powoduje problem. Błąd jest spowodowany głównie, gdy kolumna o tej samej nazwie pojawia się w więcej niż jednej tabeli podczas wykonywania połączenia.

Aby zilustrować, w jaki sposób występuje ten błąd, załóżmy, że mamy dwie tabele, jak pokazano w poniższych zapytaniach:

Utwórz tabelę my_table (
ID INT Auto Increment Klucz podstawowy,
Full_name Varchar (255),
Lang Varchar (100)
);
Utwórz tabelę my_table_1 (
Id int automatyczne przyrost,
Full_name Varchar (255),
Pieniądze z wynagrodzenia
);

Tutaj mamy dwie tabele: my_table i my_table_1. Zauważ, że oba tabele mają kolumnę Full_name. Zignoruj ​​kolumnę identyfikatora, ponieważ jest to kolumna automatycznego zbierania.

Jeśli spróbujemy uruchomić dołączenie do dwóch tabel:

Wybierz Full_name, Lang, Full_name, wynagrodzenie z My_Table X Wewnętrzna dołącz My_Table_1 Y na x.id = y.ID;

Powyższe zapytanie zwróci błąd „niejednoznaczna nazwa kolumny”. Chociaż komunikat o błędzie może się różnić w zależności od silnika bazy danych, wyjście jest bardzo podobne.

Poniżej pokazuje ten sam błąd wydrukowany w silniku bazy danych PostgreSQL.

Błąd: Odniesienie kolumny „Full_name” jest niejednoznaczne

To prowadzi do mylania SQL, z jaką nazwa Full_name, o którym mówisz.

SQL Rozwiąż niejednoznaczny błąd nazwy kolumny

Aby rozwiązać ten błąd, możemy dodać aliasy dla kolumn powodujących dwuznaczność. Na przykład możemy uruchomić zapytanie jako:

Wybierz x.Full_name, Lang, Y.Full_name, pensja od My_Table x Wewnętrzna dołącz do my_table_1 y na x.id = y.ID;

Tutaj dodajemy aliasy dla kolumn z x reprezentującym my_table i y reprezentujące my_table_1.

Powyższe powinno rozwiązać błąd i umożliwić wykonanie połączenia bez zmiany nazw kolumn.

Zamknięcie

Ten samouczek obejmował, jak rozwiązać błąd „niejednoznaczna nazwa kolumny” w SQL.