MySQL 'user_id' в том, где предложение является неоднозначной проблемой
Как я могу исправить проблему, которую я продолжаю получать из кода, ниже которого указано 'user_id' in where clause is ambiguous
. Благодарим за помощь заранее.
Вот таблица mysql.
SELECT user.*, user_info.*
FROM user
INNER JOIN user_info ON user.user_id = user_info.user_id
WHERE user_id='$user_id'
Ответы
Ответ 1
Вам просто нужно указать, какой user_id
использовать, так как в таблице user_info
и user
есть поле под названием user_id
:
... WHERE user.user_id='$user_id'
SQL не будет терпеть эту двусмысленность, поскольку для того, что он знает, оба поля могут представлять совершенно разные данные.
Ответ 2
Решение состоит в том, чтобы выбрать каждый столбец явно всюду. Не используйте пользователя * и user_info. * В своем списке выбора:
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
Вы должны указать имя псевдонима вашего столбца и назначить user_id, например
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'
Ответ 4
Попробуйте это.
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';