MySQL 'user_id "в том случае, где это неоднозначная проблема

StackOverflow https://stackoverflow.com/questions/2788326

  •  04-10-2019
  •  | 
  •  

Вопрос

Как я могу исправить проблему, которую я продолжаю получать из кода ниже, в котором говорится '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'
Это было полезно?

Решение

Вам просто нужно указать, какой user_id использовать, поскольку оба user_info а также user Стол имеют поле под названием user_id:

... WHERE user.user_id='$user_id'

SQL не потерпит этой двусмысленности, поскольку для того, что он знает, оба поля могут представлять совершенно разные данные.

Другие советы

Решение состоит в том, чтобы выбрать каждую колонку явно повсюду. Не используйте пользователя. * И 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';

Попробуй это.

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

Вы должны упомянуть псевдоним имени вашего столбца и назначить 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'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top