Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Cakephp 4.x自定义查询_Sql_Cakephp - Fatal编程技术网

Sql Cakephp 4.x自定义查询

Sql 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 '

有人可以帮助我如何生成这个查询到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 '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;      
    }
}