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的外键
答
由于您在两个不同的表上有两个同名的列(并且这不是问题,甚至在很多情况下都推荐),所以您必须通知MySQL要过滤哪一个表。
在列名之前添加表名(或别名,如果您使用表别名)。在你的情况,无论是
WHERE tbl_user.OrganisationID
或
WHERE tbl_Organisation.OrganisationID
应该工作。
答
您只需指出您使用该语句针对哪个表,如“tbl_user.OrganisationID”。否则,引擎不知道你的意思是哪个OrganisationID。
在两个表中具有相同的列名是没有错的。在许多(甚至大多数)情况下,它实际上是被推断的。
只需在所有地方添加正确的表格前缀 –