Maison  >  Article  >  base de données  >  Comment résoudre l'ambiguïté « user_id » dans la clause MySQL WHERE ?

Comment résoudre l'ambiguïté « user_id » dans la clause MySQL WHERE ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-11 06:05:03504parcourir

How to Resolve

'user_id' ambigu dans MySQL WHERE Clause

Lors de l'interrogation d'une base de données avec plusieurs tables partageant des noms de colonnes communs, il est crucial de spécifier explicitement à quelle colonne de table vous faites référence dans la clause WHERE. Cette ambiguïté survient lorsque des tables comme « user » et « user_info » ont un nom de colonne partagé, tel que « user_id ».

Le problème

La requête ci-dessous tente de rejoindre les tables 'user' et 'user_info', mais cela entraîne l'erreur "'user_id' dans la clause Where ambiguous":

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

La solution

Pour résoudre cette ambiguïté, vous devez spécifier la colonne 'user_id' de la table que vous comparez à la valeur 1. Ceci se fait en préfixant le nom de la colonne avec l'alias de la table :

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

En spécifiant explicitement 'user.user_id', vous informez la base de données qu'il s'agit de la colonne sur laquelle vous souhaitez filtrer, et non de la colonne 'user_id' de la table 'user_info'. Cela élimine l'ambiguïté et permet à la requête de s'exécuter avec succès.

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