2013-07-04 65 views
17

我找不到一個簡單的答案。我的查詢吐出了錯誤的結果,我想這是因爲它沒有看到「AND」作爲實際的連接。在兩列上加入postgres表?

你能不能做這樣的事,如果沒有,什麼是正確的做法:

SELECT * from X 
LEFT JOIN Y 
ON 
    y.date = x.date AND y.code = x.code 

+1

什麼是預期的實際效果? –

+2

語法正確 - 否則您會收到錯誤消息。你的描述「吐出錯誤的結果」雖然沒有告訴我們關於你的問題的任何信息。你必須向我們展示一些樣本數據和預期的輸出。理想情況下,在http://sqlfiddle.com上創建一個小例子 –

回答

14

沒關係。事實上,你可以把任何條件 ON子句中,即使是一個 不相關的鍵列,甚至在所有的表,例如:

SELECT * from X 
LEFT JOIN Y 
    ON y.date = x.date 
    AND y.code = x.code 
    AND EXTRACT (dow from current_date) = 1