Maison >base de données >tutoriel mysql >Comment spécifier la colonne ambiguë \'user_id\' dans une clause MySQL WHERE ?
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!