Sql Cakephp 4.x自定义查询
有人可以帮助我如何生成这个查询到Cakephp查询生成器。 我正在将我的2.x项目升级到4.xSql Cakephp 4.x自定义查询,sql,cakephp,Sql,Cakephp,有人可以帮助我如何生成这个查询到Cakephp查询生成器。 我正在将我的2.x项目升级到4.x SELECT Saving.id, SUM(IFNULL(Saving.interest,0)) + SUM(IFNULL(CASE SavingSub.type when '1' AND SavingSub.interest <= 0 then SavingSub.amount else 0 end,0)) + SUM(IFNULL(CASE SavingSub.type when '
SELECT
Saving.id,
SUM(IFNULL(Saving.interest,0)) + SUM(IFNULL(CASE SavingSub.type when '1' AND SavingSub.interest <= 0 then SavingSub.amount else 0 end,0)) + SUM(IFNULL(CASE SavingSub.type when '1' AND SavingSub.interest > 0 then SavingSub.interest else 0 end,0)) - SUM(IFNULL(CASE SavingSub.type when '0' then SavingSub.amount else 0 end,0)) - SUM(IFNULL(Saving.interest,0)) as total
FROM
savings as Saving
left join saving_subs as SavingSub On SavingSub.saving_id = Saving.id
where
Saving.visible = true and
SavingSub.visible = true
group by
Saving.id
选择
保存.id,
SUM(IFNULL(Saving.interest,0))+SUM(IFNULL(CASE SavingSub.type当'1'时,SavingSub.interest 0,然后SavingSub.interest其他0结束,0))-SUM(IFNULL(CASE SavingSub.type当'0'时,然后SavingSub.amount其他0结束,0))-SUM(IFNULL(Saving.interest,0))作为总计
从…起
储蓄即储蓄
在SavingSub.saving\u id=saving.id上左连接saving\u subs作为SavingSub
哪里
Saving.visible=true和
SavingSub.visible=true
分组
保存.id
我是如何做到的(不确定这是否是您的最佳解决方案):
如果您的查询中没有变量,您可以将:id和数组['id'=>$id]放在一边。注意您的
左连接实际上是内部的
,因为where…SavingSub.visible=
您确定吗?您具体有什么问题?功能?格表达式?加入?等等……确切地说,您是否已经准备好了模型和关系?这里的问题是Cakephp 4.x删除了自定义查询分页功能。我的CakePHP2.x正在使用这个特性。现在我将该SQL查询转换为查询生成器,因为CakePHP4.x没有更多的自定义查询分页。具体来说。我正在使用该查询进行索引分页。但我看不到任何关于如何将该查询应用到查询生成器或任何cakephp检索代码进行分页的参考。对不起,我的英语$this->hasMany('SavingSubs',['foreignKey'=>'saving_id',]);这是我与Save_subs Table的关系我可以为结果分页吗?从未尝试过。。。。
namespace App\Model\Table;
use Cake\Datasource\ConnectionManager;
...
class SomeTable extends Table
{
public function someFunction() {
$connection = ConnectionManager::get('default');
$statement = $connection->execute(
'SELECT * FROM table WHERE table.id = :id',
['id' => $id]
)->fetchAll('assoc');
return $statement;
}
}