Cosa causa questo errore?
Il posto migliore per iniziare è capire cosa causa un problema. L'errore è principalmente causato quando una colonna con lo stesso nome appare in più di una tabella quando si esegue un join.
Per illustrare come si verifica questo errore, supponiamo di avere due tabelle come mostrato nelle query seguenti:
Crea table my_table (Qui abbiamo due tabelle: my_table e my_table_1. Si noti che entrambe le tabelle hanno una colonna Full_Name. Ignora la colonna ID in quanto questa è una colonna di incremento automatico.
Se tentiamo di eseguire un join nelle due tabelle:
Seleziona full_name, lang, full_name, stipendio da my_table x interno join my_table_1 y su x.id = y.id;La query sopra restituirà un errore "Nome colonna ambiguo". Sebbene il messaggio di errore possa variare in base al motore del database, l'output è strettamente simile.
Quanto segue mostra lo stesso errore stampato sul motore del database PostgreSQL.
Errore: riferimento a colonna "full_name" è ambiguoIn questo modo porta a SQL confondere con cui si riferisce Full_name.
SQL Risolvere l'errore del nome della colonna ambiguo
Per risolvere questo errore, possiamo aggiungere alias per le colonne che causano ambiguità. Ad esempio, possiamo eseguire la query come:
Seleziona x.full_name, lang, y.full_name, stipendio da my_table x interno join my_table_1 y su x.id = y.id;Qui, aggiungiamo alias per le colonne con x che rappresentano my_table e y che rappresentano my_table_1.
Quanto sopra dovrebbe risolvere l'errore e consentire di eseguire il join senza modificare i nomi delle colonne.
Chiusura
Questo tutorial ha coperto come risolvere l'errore "Nome colonna ambiguo" in SQL.