Столбец '' в, где предложение неоднозначно Ошибка в MySQL - PullRequest
0 голосов
/ 22 сентября 2011
SELECT tbl_user.userid,
       tbl_user.firstname,
       tbl_user.lastname,
       tbl_user.email,
       tbl_user.created,
       tbl_user.createdby,
       tbl_organisation.organisationname
FROM   tbl_user
       INNER JOIN tbl_organisation
         ON tbl_user.organisationid = tbl_organisation.organisationid
WHERE  organisationid = @OrganisationID;  

Я использую это утверждение для привязки данных. Я получаю ошибку здесь.

Столбец «OrganisationID», где предложение неоднозначно

Что мне делать, это неправильно называть OrganisationID в tbl_user так же, как tbl_organisation. OrganisationID - это внешний ключ от tbl_Organisation

Ответы [ 2 ]

5 голосов
/ 22 сентября 2011

Поскольку у вас есть два столбца с одним и тем же именем в двух разных таблицах (и это не проблема, это даже рекомендуется во многих случаях), вы должны сообщить MySQL, по какому из них вы хотите фильтровать.

Добавьте имя таблицы (или псевдоним, если вы использовали псевдонимы таблицы) перед именем столбца. В вашем случае либо

WHERE tbl_user.OrganisationID

или

WHERE tbl_Organisation.OrganisationID

должно работать.

2 голосов
/ 22 сентября 2011

Вам просто нужно указать, на какую таблицу вы ориентируетесь, с помощью этого оператора, например, «tbl_user.OrganisationID».В противном случае движок не будет знать, какой OrganisationID вы имели в виду.

Нет ничего плохого в том, что в двух таблицах одинаковые имена столбцовВо многих (даже в большинстве) случаях это фактически допускается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...