duanbi6522
2014-02-19 16:37
浏览 45
已采纳

cakePHP-SQL-在sql中添加来自不同表的值

I am working on a project which requires me to do some querying which I m having a bit of trouble since my sql is a little rusty. There are 3 tables involved in the query :

donors
donations
donation_methods 

I need to run a valid sql statement logically similar to this with the correct syntax :

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

Im not entirely sure on how to do it! Any help? Also if this can be done using cake's method (find,etc), in conjunction with the 'conditions' array, that would be great! Thanks

[EDIT] Recovery time is of INT type, whilst created is of type datetime

图片转代码服务由CSDN问答提供 功能建议

我正在开发一个项目,需要我做一些查询,因为我的sql有点麻烦 有点生疏了。 查询中涉及3个表:

  donor 
donations 
donation_methods 
   
 
 

我需要运行一个 有效的sql语句在逻辑上与此类似,语法正确:

  SELECT`tel_no` 
 FROM FROM捐赠者`作为`dnr` 
 LEFT JOIN`捐赠`为`dn  `
 ON`dnr`.id =`dn`.donor_id 
 LEFT JOIN`donation_method`为`dm` 
 ON`dnn.donation_method_id =`dm`.id 
 WHERE`dn`.created` +  `dm`.recovery_time> = NOW()//这里是问题
   
 
 

我不完全确定如何做到这一点! 有帮助吗? 此外,如果可以使用cake的方法(查找等),结合'conditions'数组,那就太棒了! 谢谢

[编辑] < / strong> 恢复时间是INT类型,而创建的是datetime类型

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dourang6423 2014-02-19 16:44
    已采纳

    You should be able to use the DATE_ADD function for this

    WHERE DATE_ADD(dn.created, INTERVAL dn.recovery_time YEAR) >= NOW()
    
    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题