MySQL 'user_id' in where clause is ambiguous problem

拟墨画扇 提交于 2019-11-26 08:37:13

问题


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\'

回答1:


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.




回答2:


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';



回答3:


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';



回答4:


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'


来源:https://stackoverflow.com/questions/2788326/mysql-user-id-in-where-clause-is-ambiguous-problem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!