gpt4 book ai didi

mysql - cakephp 从排序且有限的行加入

转载 作者:行者123 更新时间:2023-11-29 20:12:39 24 4
gpt4 key购买 nike

我有一个有效的 SQL 查询,我想知道 CakePHP 查询构建器相当于以完全相同的方式工作吗?

SELECT customers.*, customer_reps.created FROM customers
LEFT JOIN customer_reps ON customer_reps.id =
(
SELECT id FROM customer_reps WHERE customer_id = customers.id
ORDER BY id ASC LIMIT 1
)
WHERE created >= 1475298000
AND created <= 1476217836
AND agents_id = 4

所以本质上我是从“客户”中选择所有列,然后我只想要第一个“customer_reps”表的“创建”时间戳字段来匹配客户。

CakePHP 的文档似乎没有解释如何在 select 中进行选择以进行排序。我尝试使用“hasMany”关系内容,但我无法找到如何获取“第一个”customer_reps 条目以添加到主查询中以在 WHERE 子句中使用。

谢谢

最佳答案

尝试将此代码作为起点,您只需按 CustomerRep.customer_id 将其分组,因为如果您的 customer_reps 表 id 已自动递增,则顺序已经升序

    $this->Customer->find('all', array(
'fields' => arrray(
'Customer.*',
'CustomerRep.created'
),
'joins' => array(
array(
'type' => 'LEFT',
'table' => 'customer_reps',
'alias' => 'CustomerRep',
'conditions' => 'Customer.id = CustomerRep.customer_id'
)
)
'conditions' => array(
'Customer.created >=' => '1475298000',
'Customer.created <=' => '1476217836',
'Customer.agentds_id' => 4
),
'group' => 'CustomerRep.customer_id'
));

关于mysql - cakephp 从排序且有限的行加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986278/

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