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>
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>
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!