2017-01-26 12 views
-2

私はサブクエリを作っていますが、私は奇妙なエラーSQLサブクエリ複数回

に列を取得していますエラー「RealEstateID」「NotSold」の複数回指定されました。

ここでは、それは仕方によってSQLサーバー上にある私のコード

SELECT * 
    FROM 
     (SELECT * 
     FROM RealEstatesInfo AS REI 
     LEFT JOIN Purchases AS P 
     ON P.RealEstateID=REI.RealEstateID 
     WHERE DateBought IS NULL) AS NotSold 
INNER JOIN OwnerEstate AS OE 
ON OE.RealEstateID=NotSold.RealEstateID 

です。

+1

*を列名のリストに置き換えてください。問題が表示されます。 – dfundako

+0

@dfundakoと同意します。あなたは内側のselectから 'RealEstateID'カラムを2つ返します。したがって、これらの2つの列 'P.RealEstateID'、' REI.RealEstateID'は 'NotSold'としてエイリアスされます。だからあなたの外側の選択は、参加するものに混乱しています。 –

+0

ああ私は今おかげです – hollow

答えて

0

これは、サブクエリに2つのrealestiteidsが存在するためです。テーブルの両方の列を明示的に一覧表示するには、それを変更する必要があります。また、1つのrealestateidのみを含める必要があります。あなたの参加のためにそれを使用するときは、それは重要ではありません。 あなたが非常に怠惰な人は、rei。*を選択することができ、realestateidとは区別されているだけです。

Btw select *はおそらく、サブクエリや派生テーブルまたは派生テーブルでは決して良い考えではありません。

+0

うん、私はそれを理解している、私は*を使用しているので、私は今質問を形成しているので、後で正確な列で*を変更するだろう... idk – hollow

関連する問題