Nom de la colonne ambiguë avec requête SQL Join

Nom de la colonne ambiguë avec requête SQL Join
Une erreur courante lors de l'exécution des jointures SQL est l'erreur «nom de colonne ambiguë». Ce type d'erreur se produit lorsque vous essayez de vous joindre à deux tables ou plus et plus d'une colonne du même nom apparaît dans plus d'une des tables. Ce court article discutera de la façon de résoudre cette erreur lors de la réalisation de swins SQL.

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 (
id int Auto Incrément Clé primaire,
full_name varchar (255),
Lang Varchar (100)
));
Créer la table my_table_1 (
ID int incrément automatique,
full_name varchar (255),
argent salarial
));

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.