Maison > base de données > tutoriel mysql > Comment résoudre l'erreur SQL « La référence de colonne « id » est ambiguë » ?

Comment résoudre l'erreur SQL « La référence de colonne « id » est ambiguë » ?

Mary-Kate Olsen
Libérer: 2025-01-18 07:36:08
original
820 Les gens l'ont consulté

How to Resolve SQL's

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>
Copier après la connexion

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>
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal