gpt4 book ai didi

mysql - cakePHP- 基于 sql 语法的查询到 cake 的基于数组的查询

转载 作者:行者123 更新时间:2023-11-29 13:12:21 25 4
gpt4 key购买 nike

我需要从我的一个 Controller 执行此查询:

SELECT  `tel_no` 
FROM `donors` AS `dnr`
LEFT JOIN `donations` AS `dn` ON `dnr`.id = `dn`.donor_id
LEFT JOIN `donation_methods` AS `dm` ON `dn`.donation_method_id = `dm`.id
WHERE NOW() >= DATE_ADD(dn.created, INTERVAL dm.recovery_time DAY)

您可能会注意到,此查询涉及 3 个模型。我正在努力解决如何使用上面的 cake 生成基于数组的查询。

 $elligibleDonors = $this->Donor->find('all', array(
'fields' => array('Donor.tel_no', 'Donor.email'),
'conditions' => array('NOW() >= Donation.created + Donation_method.recovery_time'),
'recursive' => 2
));
$this->set('elligibleDonors', $elligibleDonors);

我尝试了这个,但错误指出列不存在这当然是一个语法错误,我无法弄清楚!

[编辑]

关系是

捐赠者有很多捐赠捐赠属于捐赠者捐赠属于捐赠方式捐赠方式有多种捐赠

$joins = array(
array('table'=>'donations',
'alias' => 'Donation',
'type'=>'left',
'conditions'=> array(
'Donation.donor_id = Donor.id'
)),
array('table'=>'donation_methods',
'alias' => 'DonationMethod',
'type'=>'left',
'conditions'=> array(
'DonationMethod.id = Donation.donation_method_id'
))
);

我发现这就是我想要的,但是我应该将“WHERE”子句条件放在这段代码中的哪里?

最佳答案

如果默认的find不能满足您的需求,只需在Cake中使用join选项即可。

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables

关于mysql - cakePHP- 基于 sql 语法的查询到 cake 的基于数组的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21912338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com