Ce qui cause cette erreur?
Le meilleur endroit pour commencer est de comprendre ce qui cause un problème. L'erreur est principalement causée lorsqu'une colonne avec le même nom apparaît dans plus d'une table lors de l'exécution d'une jointure.
Pour illustrer comment cette erreur se produit, supposons que nous avons deux tables comme indiqué dans les requêtes ci-dessous:
Créer une table My_Table (Ici, nous avons deux tables: my_table et my_table_1. Notez que les deux tables ont une colonne full_name. Ignorez la colonne ID car il s'agit d'une colonne d'auto-incrémentation.
Si nous essayons d'exécuter une jointure dans les deux tables:
Sélectionnez Full_name, Lang, Full_name, Salaire de My_Table X Inner Join My_Table_1 Y sur x.id = y.identifiant;La requête ci-dessus renvoie une erreur de «nom de colonne ambiguë». Bien que le message d'erreur puisse varier en fonction du moteur de la base de données, la sortie est étroitement similaire.
Ce qui suit montre la même erreur imprimée sur le moteur de la base de données PostgreSQL.
Erreur: la référence de la colonne "full_name" est ambiguëCela conduit à confondre SQL avec lequel vous référez Full_Name.
Erreur de nom de colonne ambiguë SQL
Pour résoudre cette erreur, nous pouvons ajouter des alias pour les colonnes provoquant une ambiguïté. Par exemple, nous pouvons exécuter la requête comme:
Sélectionnez X.full_name, lang, y.full_name, salaire de my_table x intérieur rejoindre my_table_1 y sur x.id = y.identifiant;Ici, nous ajoutons des alias pour les colonnes avec X représentant My_Table et Y représentant my_table_1.
Ce qui précède doit résoudre l'erreur et vous permettre d'effectuer la jointure sans modifier les noms de colonne.
Fermeture
Ce tutoriel a couvert comment résoudre l'erreur «nom de colonne ambiguë» dans SQL.