1

私はオンラインで検索しており、この問題に関する Stackoverflow の質問でも検索していますが、関連する応答を受け取ることができませんでした. 以下に示したSQLクエリは、

SELECT Scania.GensetType
    , Scania.EngineType
    , Scania.Engine60Hz
    , Scania.Alternator
    , Scania.PriceEur 
FROM Scania 
LEFT JOIN NordhavnGenset 
    ON Scania.GensetType=NordhavnGenset.Alternator 
WHERE (NordhavnGenset.MaxKva='46') 
    and (Generator.Alternator='ECP34-1LN/4') 
    and (insulation.Insulation='F (90ºC/45ºC)') 
    and (Klasse.Klasse='KRS\r') 
    and (airinletfilter.AirInletFilter='No') 
    and (Ip.IP='IP23');

常に以下のエラー メッセージが返されます。この列がテーブルに存在することを何度か確認しました。

#1054 - Unknown column 'Generator.Alternator' in 'where clause'

ただし、最初の Where 句で停止してクエリを実行すると、結果が表示されます。

SELECT Scania.GensetType
    , Scania.EngineType
    , Scania.Engine60Hz
    , Scania.Alternator
    , Scania.PriceEur 
FROM Scania 
LEFT JOIN NordhavnGenset 
    ON Scania.GensetType=NordhavnGenset.Alternator 
WHERE (NordhavnGenset.MaxKva='46');

新しいクエリ

    SELECT  Scania.GensetType, Scania.EngineType, Scania.Engine60Hz, Scania.Alternator, Scania.PriceEur
FROM Scania  
LEFT JOIN NordhavnGenset
    ON Scania.GensetType=NordhavnGenset.Alternator 
LEFT JOIN Generator
    ON Scania.Alternator=Generator.Alternator
LEFT JOIN Insulation 
    ON NordhavnGenset.Insulation=Insulation.Insulation
LEFT JOIN Klasse
    ON NordhavnGenset.Class=Klasse.Class
LEFT JOIN AirInletFilter
    ON NordhavnGenset.AirInletFilter=AirInletFilter.AirInletFilter
LEFT JOIN IP
    ON NordhavnGenset.Ip=IP.IP
WHERE (NordhavnGenset.MaxKva='46') and (Generator.Alternator='ECP34-1LN/4') and (Insulation.Insulation='F (90ºC/45ºC)') and (Klasse.Klasse='KRS\r') and (AirInletFilter.AirInletFilter='No') and (IP.IP='IP23');
4

3 に答える 3

7

というテーブルに参加しているようには見えませんGenerator。あなたがそうしWHEREない限り、節にテーブルを含めることはできませんJOIN

JOINtoを追加すると、句Generatorで使用できます。WHERE

SELECT *
FROM Scania 
LEFT JOIN NordhavnGenset 
    ON Scania.GensetType=NordhavnGenset.Alternator 
LEFT JOIN Generator 
    ON ....
WHERE (Generator.Alternator='ECP34-1LN/4') ...

WHERE句にはオンになっていない他のテーブルもJOINedあるため、それらも追加する必要があります。

于 2012-06-18T15:35:54.067 に答える
0

エラーの理由は、WHERE句で使用しているテーブルを結合していないことです。

以下は常にエラーになります -

and (Generator.Alternator='ECP34-1LN/4') 
and (insulation.Insulation='F (90ºC/45ºC)') 
and (Klasse.Klasse='KRS\r') 
and (airinletfilter.AirInletFilter='No') 
and (Ip.IP='IP23');

テーブルを結合するか、テーブルのエイリアスを「.」の前の名前にする必要があります。

于 2012-06-18T15:36:14.797 に答える
0

Generator結合にテーブルを含めていません。それを追加するか、NordhavnGenset.Alternator代わりに意味するかもしれませんGenerator.Alternator

于 2012-06-18T15:36:30.307 に答える