2011-09-22 66 views
0
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

只需在所有地方添加正確的表格前綴 –

回答

5

由於您在兩個不同的表上有兩個同名的列(並且這不是問題,甚至在很多情況下都推薦),所以您必須通知MySQL要過濾哪一個表。

在列名之前添加表名(或別名,如果您使用表別名)。在你的情況,無論是

WHERE tbl_user.OrganisationID 

WHERE tbl_Organisation.OrganisationID 

應該工作。

2

您只需指出您使用該語句針對哪個表,如「tbl_user.OrganisationID」。否則,引擎不知道你的意思是哪個OrganisationID。

在兩個表中具有相同的列名是沒有錯的。在許多(甚至大多數)情況下,它實際上是被推斷的。