Maison > base de données > tutoriel mysql > Comment résoudre les erreurs « La référence de colonne est ambiguë » dans les instructions SQL SELECT ?

Comment résoudre les erreurs « La référence de colonne est ambiguë » dans les instructions SQL SELECT ?

DDD
Libérer: 2025-01-18 07:47:07
original
289 Les gens l'ont consulté

How to Resolve

Référence de colonne ambiguë dans l'instruction SQL SELECT

En SQL, une ambiguïté se produit lorsque plusieurs colonnes partagent le même nom dans différentes tables impliquées dans une requête. Lorsque ces colonnes sont sélectionnées, les colonnes référencées par la requête sont ambiguës, ce qui entraîne des erreurs telles que « Référence de colonne ambiguë ».

Énoncé du problème

Lorsque vous essayez d'exécuter l'instruction SELECT suivante, vous rencontrerez le problème suivant :

<code class="language-sql">SELECT (id,name) 
FROM v_groups vg 
INNER JOIN people2v_groups p2vg 
  ON vg.id = p2vg.v_group_id
WHERE p2vg.people_id = 0;</code>
Copier après la connexion

Cette requête tente de récupérer les colonnes id et name de la table v_groups. Cependant, le message d'erreur est renvoyé : "L'identifiant de référence de colonne est ambigu".

Cause d'ambiguïté

L'ambiguïté surgit car les tables v_groups et people2v_groups contiennent une colonne nommée id. Sans spécifier un nom de table ou un alias, la requête ne peut pas déterminer quelle colonne d'identifiant doit être récupérée.

Solution

Pour résoudre les ambiguïtés, spécifiez explicitement le nom de la table ou l'alias avant le nom de la colonne dans la partie SELECT de la requête. Cela indique clairement à la base de données quelle colonne d'identifiant doit être utilisée.

Requête corrigée :

<code class="language-sql">SELECT (vg.id, name)
FROM v_groups vg 
INNER JOIN people2v_groups p2vg 
  ON vg.id = p2vg.v_group_id
WHERE p2vg.people_id = 0;</code>
Copier après la connexion

En ajoutant vg. avant id, la requête fait explicitement référence à la colonne id dans la table v_groups, supprimant ainsi l'ambiguïté et permettant à la requête de s'exécuter avec succès.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal