2017-07-03 34 views
1

如何解決此錯誤?我已經試過在我的sql腳本中尋找植物的雙重聲明,但是我的腳本似乎沒有錯。無論如何,我所涉及的/有一個列名ID的所有其他SQL連接都可以工作。此外,當我嘗試運行我的原始腳本是這樣的不明確的列名「工廠」

select tblCustomerList.CustomerName, tblPackages.Package,tblChangeLevels.ChangeLevels,tblDevices.Devices,tblPlant.Plant 

from ATPChangeControlBoard.tblCCB 

inner join ATPChangeControlBoard.tblCustomerList 
on ATPChangeControlBoard.tblCCB.custAffected=ATPChangeControlBoard.tblCustomerList.ID 

inner join ATPChangeControlBoard.tblPackages 
on ATPChangeControlBoard.tblCCB.packageAffected=ATPChangeControlBoard.tblPackages.ID 

inner join ATPChangeControlBoard.tblChangeLevels 
on ATPChangeControlBoard.tblCCB.changeLevel=ATPChangeControlBoard.tblChangeLevels.ID 

inner join ATPChangeControlBoard.tblDevices 
on ATPChangeControlBoard.tblCCB.devsAffected=ATPChangeControlBoard.tblDevices.ID 

inner join ATPChangeControlBoard.tblPlant 
on ATPChangeControlBoard.tblCCB.plant=ATPChangeControlBoard.tblPlant.ID; 

它工作得很好,並且不會在工廠列上顯示任何錯誤。

下面是我使用的顯示錯誤的實際代碼的圖片截圖。 請致電幫幫我。 TIA。 :)

enter image description here

+0

你的屏幕截圖看起來像SQL Server,所以我刪除了mysql標籤。另外,你的問題基本上是不合理的。你已經放入了一個可以正常工作的查詢,但是沒有工作的代碼。沒有人會嘗試閱讀你的屏幕截圖。 –

+0

對此表示遺憾。不起作用的代碼在屏幕截圖上,不知道在哪裏。 :) –

+0

可能重複的[不明確的列名錯誤,我該如何解決它?](https://stackoverflow.com/questions/1138239/ambiguous-column-name-error-how-do-i-fix-it) –

回答

2

剛剛發現另一個線程的答案。

我將所有工廠/ [列名]聲明更改爲tblPlant.plant/[tablename]。[columnname],以直接區分具有相同列名的列。

在我來說,我在where子句中更改我的代碼從

and (@plant is null or plant= @plant) 

and (@plant is null or tblPlant.plant= @plant) 

雖然其他SQL連接並不需要我補充這樣的額外的代碼,這一個我是這麼做的,只是爲需要的代碼添加了額外的代碼。

我在這裏找到了關於評論的答案,而且由於我還無法贊成或評論,所以我只是決定在這裏強調這是解決我的問題的方法。 :)

Ambiguous column name error, how do I fix it?

通過@JohnFx

他說

「問題是,你沒有爲字段中指定的表名‘標誌’,它可能更多的存在而不是查詢中的一個表格,將表格名稱以「Tablename.flags」格式添加到所有引用的前面以解決問題。