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' ont 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 voulons utiliser la colonne 'user_id' 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 le 'user_id' dans Where La clause est une erreur 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 d'autres problèmes similaires à l'avenir.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3