where子句中的列''含糊不清mysql中的错误

问题描述:

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子句中的列''含糊不清mysql中的错误

列在where子句是模糊的“OrganisationID”

我应该怎么做是错在tbl_user一样tbl_organisation命名OrganisationID。 OrganisationID是来自tbl_Organisation的外键

+3

只需在所有地方添加正确的表格前缀 –

由于您在两个不同的表上有两个同名的列(并且这不是问题,甚至在很多情况下都推荐),所以您必须通知MySQL要过滤哪一个表。

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

WHERE tbl_user.OrganisationID 

WHERE tbl_Organisation.OrganisationID 

应该工作。

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

在两个表中具有相同的列名是没有错的。在许多(甚至大多数)情况下,它实际上是被推断的。