Résolution de l'erreur « Référence de colonne ambiguë » de SQL : le cas de la colonne « id » en double
Lors de la construction de requêtes SELECT
impliquant plusieurs tables avec des noms de colonnes communs (comme une colonne "id" omniprésente), vous pourriez rencontrer la redoutable erreur "la référence de colonne 'id' est ambiguë". Cela se produit parce que SQL ne sait pas quelle colonne "id" de la table vous avez l'intention de récupérer.
La solution est simple : qualifiez toujours les noms de vos colonnes avec leurs alias de table respectifs ou leurs noms de table complets.
Par exemple, si votre requête rejoint v_groups
(alias vg
) et people2v_groups
(alias p2vg
), contenant tous deux une colonne "id", la requête ambiguë :
<code class="language-sql">SELECT (id, name) -- Ambiguous! FROM v_groups vg INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id WHERE p2vg.people_id = 0;</code>
doit être réécrit pour spécifier explicitement la source de la table pour la colonne "id":
<code class="language-sql">SELECT (vg.id, name) -- Unambiguous! FROM v_groups vg INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id WHERE p2vg.people_id = 0;</code>
En utilisant vg.id
, on indique clairement que l'on veut le "id" de la table v_groups
. Cela élimine l'ambiguïté et garantit que votre requête s'exécute correctement.
En bref : chaque fois que vous traitez avec plusieurs tables partageant des noms de colonnes, préfixez toujours vos noms de colonnes avec leurs alias de table correspondants (ou noms de table complets) pour éviter toute ambiguïté et garantir des résultats de requête précis.
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!