Comment puis-je corriger le problème que je ne cesse de recevoir à partir du code ci-dessous, qui indique 'user_id' in where clause is ambiguous
Merci pour l'aide à l'avance.
Voici la table mysql.
SELECT user.*, user_info.*
FROM user
INNER JOIN user_info ON user.user_id = user_info.user_id
WHERE user_id='$user_id'
Vous devez simplement spécifier le user_id
à utiliser, car les tables user_info
et user
ont toutes les deux un champ appelé user_id
:
... WHERE user.user_id='$user_id'
SQL ne tolérerait pas cette ambiguïté, car pour ce qu'il sait, les deux champs peuvent représenter des données totalement différentes.
Essaye ça.
SELECT u.user_id, u.user_fudge, ui.foo, ui.bar
FROM user AS u
INNER JOIN user_info AS ui
ON ui.user_id = u.user_id
WHERE u.user_id = '$user_id';
Vous devriez mentionner le nom d'alias de votre colonne et affecter à user_id comme
SELECT user.*, user_info.*
FROM user as u
INNER JOIN user_info as ui ON u.user_id = ui.user_id
WHERE u.user_id='$user_id'
La solution consiste à sélectionner chaque colonne explicitement partout. N'utilisez pas user. * Et user_info. * Dans votre liste de sélection, soit:
SELECT u.user_id, u.user_fudge, ui.foo, ui.bar
FROM user u
INNER JOIN user_info ui
ON ui.user_id = u.user_id
WHERE u.user_id = '$user_id';