2017-07-03 16 views
1

このエラーを解決する方法。私はすでに私のSQLスクリプトで植物の二重宣言を探してみましたが、私のスクリプトに間違いはないようです。とにかく私が関与/列名IDを持っている他のすべてのSQL結合はちょうどうまく動作します。また、これは私の元のスクリプトを実行しようとすると不明な列名 'plant'

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; 

それはうまく動作し、プラントの列に何のエラーも表示されません。

以下は、使用した実際のコードの画像のスクリーンショットです。エラーを示しています。 Pls。助けて。 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]に変更して、同じ列名の列を直接区別します。他のSQLは次のように余分なコードを追加するために私を必要としませんでしたジョインが、私の場合は

私は、

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

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

からwhere句で、このいずれかを私のコードを変更します私はそうして、それを必要とするコードに余分なコードを追加しました。

私はここでコメントの答えを見つけました。私はまだupvoteやコメントはできませんので、私はここで私の問題を解決したものであることを強調することにしました。 @JohnFx

によって:)

Ambiguous column name error, how do I fix it?

彼は

はフラグ 『と、それはおそらくよりに存在する「問題はあなたがフィールドのテーブル名を指定していないということである』と言いました"Tablename.flags"という形式でテーブル名をすべての参照の先頭に追加して問題を解決してください。