2016-07-06 1 views
2

例 -Amazon redshiftデータベースのクエリを作成して、相関クエリのwhere句に2つの条件があるようにする方法はありますか?

SELECT date, name, 
     (SELECT value 
     FROM this_table 
     WHERE col1= 'test1' and col2='test' 
     ) AS num_sloths_bought_before 
FROM source_table; 

私は赤方偏移でクエリを実行すると、私はこのエラーを取得する -

[Amazon](500310) Invalid operation: This type of correlated subquery pattern is not supported yet; 

答えて

1

あなたは通常、クエリのために、それは参加左だ、合流使用して相関スカラサブクエリを書き換えることができます。

SELECT date, name, dt.value AS num_sloths_bought_before 
FROM source_table 
LEFT JOIN 
(SELECT val, 
     value 
    FROM this_table 
    WHERE col2='test' 
) this_table 
ON source_table.val= this_table.val; 
+0

ありがとうございます!私はこれを試して、それは動作します。私が今直面しています問題は、私のwhere句は、別のテーブルを参照していることを--select日付、名前、dt.valueをSOURCE_TABLE、 (SELECT値 FROM num_sloths_bought_before AS this_table source_table.val = this_table.valとcol2 FROMあります= 'test' )dt; – Tisha

+0

コメントで上記のクエリを実行すると、エラーが発生する - "[Amazon](500310)無効な操作:FROMのサブクエリが同じクエリレベルの他のリレーションを参照していない可能性があります。 – Tisha

+0

@ティシャ:実際には相関関係があり、私は自分の答えを編集しました。今は左の参加です – dnoeth

関連する問題