2013-02-20 49 views
0

我更新了舊系統,並且遇到查詢問題。如果在mysql查詢中爲true,則只能使用AND statment

爲了得到業務,這是直接的問題:

有新記錄巫與編號到其他記錄相關聯。也有舊的記錄不是。

  • 案例1:有一個INT ID,當存在時,查詢必須在包含後使用AND。
  • 案例2:當INT id的值是0它什麼都不做

這是查詢的一部分,我需要做的變量,並聲明:

LEFT JOIN table v ON v.producten_id = i.producten_id AND v.t5_id = i.t5_id AND i.id = v.inkoop_id 

我從來沒有使用,如果在查詢內部雄蕊但我期待這樣的事情:

LEFT JOIN table v ON v.producten_id = i.producten_id AND v.t5_id = i.t5_id if(v.inkoop_id > 0){AND i.id = v.inkoop_id} 

回答

1

試試這個:

LEFT JOIN table v 
    ON v.producten_id = i.producten_id 
    AND v.t5_id = i.t5_id 
    AND (v.inkoop_id <= 0 OR i.id = v.inkoop_id) 
+0

它的工作。那正是我期待的! – botenvouwer 2013-02-20 11:11:14

1

這個怎麼樣....

LEFT JOIN table v ON v.producten_id = i.producten_id 
    AND v.t5_id = i.t5_id 
    AND ((v.inkoop_id > 0 AND i.id = v.inkoop_id) OR (v.inkoop_id = 0))