MySQL 'user_id' in where clause is ambiguous problem
-
04-10-2019 - |
Question
How can I correct the problem I keep getting from the code below which states 'user_id' in where clause is ambiguous
. Thanks for the help in advance.
Here is the mysql table.
SELECT user.*, user_info.*
FROM user
INNER JOIN user_info ON user.user_id = user_info.user_id
WHERE user_id='$user_id'
Solution
You simply need to specify which user_id
to use, since both the user_info
and user
table have a field called user_id
:
... WHERE user.user_id='$user_id'
SQL wouldn't tolerate this ambiguity, since for what it knows, both fields can represent totally different data.
OTHER TIPS
The solution is to select each column explicitly everywhere. Don't use user.* and user_info.* in your select list, either:
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';
Try this.
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';
You should be mention alias name of your column and assign to user_id like
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'
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow