2014-02-19 51 views
0

我正在處理一個項目,它需要我做一些查詢,因爲我的sql有點生疏,所以我有點麻煩。有3個表查詢中涉及:cakePHP- SQL-從sql中的不同表中添加值

donors 
donations 
donation_methods 

我需要運行邏輯上類似於此的正確語法有效的SQL語句:

SELECT `tel_no` 
    FROM `donors` as `dnr` 
     LEFT JOIN `donations` as `dn` 
        ON `dnr`.id = `dn`.donor_id 
     LEFT JOIN `donation_method` as `dm` 
        ON `dn`.donation_method_id = `dm`.id 
    WHERE `dn`.created`+`dm`.recovery_time >= NOW() // here is the problem 

我不是如何做到這一點完全肯定!任何幫助?此外,如果這可以使用蛋糕的方法(查找等),結合'條件'數組,這將是偉大的! 感謝

[編輯] 恢復時間是INT型的,而創造是datetime類型的

+0

'created'和'recovery_time'的列類型是什麼? –

+0

通過正確的語法不確定你的數據類型是WHERE'dn'.'created' +'dm'.'recovery_time' –

+0

@RobM。我編輯了我的問題! – LogixMaster

回答

1

您應該能夠使用DATE_ADD function這個

WHERE DATE_ADD(dn.created, INTERVAL dn.recovery_time YEAR) >= NOW() 
+0

謝謝,它的工作原理!並沒有意識到這個my_sql方法!再次感謝 – LogixMaster

+0

我的榮幸,很高興幫助。 :) –

1

變化

WHERE `dn`.created`+`dm`.recovery_time >= NOW() 
     ^missing `  

WHERE `dn`.`created`+`dm`.`recovery_time` >= NOW()