Nome colonna ambiguo con query di join SQL

Nome colonna ambiguo con query di join SQL
Un errore comune durante l'esecuzione di SQL si unisce è l'errore "Nome colonna ambiguo". Questo tipo di errore si verifica quando si tenta di unirsi in due o più tabelle e più di una colonna con lo stesso nome appare in più di una delle tabelle. Questo breve articolo discuterà di come risolvere questo errore quando si eseguono un incontro SQL.

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 (
Id Inc incremento automatico Chiave primaria,
full_name varchar (255),
Lang varchar (100)
);
Crea table my_table_1 (
Id Inc incremento automatico,
full_name varchar (255),
Soldi del salario
);

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" è ambiguo

In 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.