我正在开发一个项目,要求我做一些查询,因为我的sql有点生锈,我有点麻烦。查询中涉及3个表:
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
我不完全确定如何做到这一点!有帮助吗?此外,如果可以使用cake的方法(查找等),结合'conditions'数组,这将是伟大的! 感谢
[编辑] 恢复时间为INT类型,而创建的类型为datetime
答案 0 :(得分:1)
更改
WHERE `dn`.created`+`dm`.recovery_time >= NOW()
^ missing `
到
WHERE `dn`.`created`+`dm`.`recovery_time` >= NOW()
答案 1 :(得分:1)
您应该能够使用DATE_ADD
function来实现此目标
WHERE DATE_ADD(dn.created, INTERVAL dn.recovery_time YEAR) >= NOW()