where子句中的列''是不明确的mysql中的错误

时间:2011-09-22 15:30:20

标签: asp.net mysql sql

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;  

我正在使用此语句来执行数据绑定。我在这里收到错误。

where子句中的“OrganisationID”列不明确

我应该怎么做才能将tbl_user中的OrganisationID命名为tbl_organisation。 OrganisationID是来自tbl_Organisation的外键

2 个答案:

答案 0 :(得分:5)

由于在两个不同的表上有两个具有相同名称的列(这不是问题,甚至在许多情况下都建议这样做),您必须通知MySQL要过滤哪个。

在列名称之前添加表名(或别名,如果您使用表别名)。在你的情况下,

WHERE tbl_user.OrganisationID

WHERE tbl_Organisation.OrganisationID

应该有用。

答案 1 :(得分:2)

您只需要指明您使用该语句定位的表,例如“tbl_user.OrganisationID”。否则引擎不知道你的意思是哪个OrganisationID。

两个表中的列名相同并没有错。在许多(甚至大多数)情况下,实际上都是这样的。