Maison >base de données >tutoriel mysql >Comment spécifier la colonne ambiguë \'user_id\' dans une clause MySQL WHERE ?

Comment spécifier la colonne ambiguë \'user_id\' dans une clause MySQL WHERE ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 17:26:02294parcourir

How to Specify the Ambiguous 'user_id' Column in a MySQL WHERE Clause?

Résoudre l'ambiguïté dans la clause WHERE 'user_id' de MySQL

Lorsque vous travaillez avec plusieurs tables partageant un nom de colonne, MySQL peut rencontrer une ambiguïté lors de l'utilisation cette colonne dans une clause WHERE. Cela est évident dans le message d'erreur 'user_id' dans la clause Where qui est ambiguë.

Considérez l'exemple de requête :

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

Dans cette requête, les tables 'user' et 'user_info' avoir une colonne 'user_id'. Cependant, MySQL ne peut pas déterminer quelle colonne 'user_id' utiliser dans la clause WHERE.

Résoudre l'ambiguïté

Pour résoudre l'ambiguïté, nous devons spécifier quel 'user_id' colonne à utiliser. Ceci peut être réalisé en ajoutant le nom de la table comme préfixe au nom de la colonne, comme indiqué ci-dessous :

... WHERE user.user_id=1

En spécifiant 'user.user_id', nous déclarons explicitement que nous souhaitons utiliser le 'user_id'. colonne de la table 'user' dans la clause WHERE.

Cette clarification élimine l'ambiguïté et permet à MySQL d'exécuter la requête sans rencontrer l'erreur 'user_id' dans la clause Where qui est ambiguë. N'oubliez pas de toujours spécifier le préfixe de la table lorsque vous faites référence à des noms de colonnes ambigus dans une clause WHERE pour éviter ce problème et des problèmes similaires à l'avenir.

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