Maison  >  Article  >  base de données  >  Pourquoi ma clause MySQL WHERE avec « user_id » est-elle ambiguë ?

Pourquoi ma clause MySQL WHERE avec « user_id » est-elle ambiguë ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-10 19:45:02583parcourir

Why is my MySQL WHERE clause with 'user_id' ambiguous?

Colonne 'user_id' ambiguë dans la clause MySQL WHERE

Lors de l'exécution de la requête MySQL suivante, vous pouvez rencontrer une erreur indiquant que 'user_id ' de la clause WHERE est ambiguë :

SELECT user.*, user_info.*
FROM user
INNER JOIN user_info ON user.user_id = user_info.user_id
WHERE user_id=1

Raison de l'erreur :

Cette erreur se produit car les tables 'user' et 'user_info' ont toutes deux une colonne nommée 'user_id'. Sans spécifier quel 'user_id' de table utiliser dans la clause WHERE, MySQL est incapable de déterminer à quelle colonne référencer.

Solution :

Pour résoudre cette ambiguïté, vous vous devez spécifier explicitement quelle colonne utiliser en ajoutant le nom de la table avant la colonne « user_id » :

SELECT user.*, user_info.*
FROM user
INNER JOIN user_info ON user.user_id = user_info.user_id
WHERE user.user_id=1

En ajoutant « user ». avant « user_id », vous spécifiez que la colonne « user_id » de la table « user » doit être utilisée dans la clause WHERE. Cela élimine l'ambiguïté et permet à MySQL d'exécuter correctement la requête.

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!

Déclaration:
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