私は簡単な答えを見つけることができません。私のクエリは間違った結果を吐き出しています。実際の結合として "AND"が表示されないためです。postgresテーブルに2つの列で結合しますか?
あなたはこのような何かを行うことができない場合は、正しいアプローチです:
SELECT * from X
LEFT JOIN Y
ON
y.date = x.date AND y.code = x.code
は?
私は簡単な答えを見つけることができません。私のクエリは間違った結果を吐き出しています。実際の結合として "AND"が表示されないためです。postgresテーブルに2つの列で結合しますか?
あなたはこのような何かを行うことができない場合は、正しいアプローチです:
SELECT * from X
LEFT JOIN Y
ON
y.date = x.date AND y.code = x.code
は?
これが可能です:
ON句は、結合条件の最も一般的な種類である:それはWHERE句で使用されているのと同じ種類のブール値式を取ります。 ON式がtrueの場合、T1とT2の一対の行が一致します。
http://www.postgresql.org/docs/9.1/static/queries-table-expressions.html#QUERIES-FROM
あなたのSQLはOKに見えます。
いいです。期待されている何
SELECT * from X
LEFT JOIN Y
ON y.date = x.date
AND y.code = x.code
AND EXTRACT (dow from current_date) = 1
が実際の結果である:実際には、あなたは1 は、例えば、キー列に関連する、またはすべてでさえ表ではないとしても、ON句で任意の条件を置くことができますか? –
構文は正しいです。そうしないと、エラーメッセージが表示されます。 「間違った結果を吐き出す」というあなたの説明は、あなたの問題については何も教えてくれません。いくつかのサンプルデータと期待される出力を表示しなければなりません。理想的には、http://sqlfiddle.comで少しの例を作成する –