Maison > Article > base de données > Pourquoi ma clause MySQL WHERE avec « user_id » est-elle ambiguë ?
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!