【问题标题】:Controller pagination with a subquery带有子查询的控制器分页
【发布时间】:2016-06-07 13:55:26
【问题描述】:

我想在我的控制器中使用这个 MySQL 查询而不使用 query()。

SELECT * FROM T1 INNER JOIN
(SELECT T1.id
FROM T1 
INNER JOIN T2 ON T1.id = T2.T1_id
INNER JOIN T3 ON T2.T3_id = T3.id
WHERE 
1 = 1
GROUP BY T1.id
HAVING COUNT(*) = 1) AS T1_x ON T1.id = T1_x.id

无法弄清楚我的控制器中的代码是什么。

【问题讨论】:

    标签: cakephp cakephp-2.3


    【解决方案1】:

    这是在 CakePHP 中加入子查询的一种方法

    我的模型名称是 T1

        $this->paginate = array(
        'paramType' => 'querystring',
        'joins' => array(
            array(
            'table' => '(SELECT T1.id
                        FROM T1 
                        INNER JOIN T2 ON T1.id = T2.T1_id
                        INNER JOIN T3 ON T2.T3_id = T3.id
                        WHERE 
                        1 = 1
                        GROUP BY T1.id
                        HAVING COUNT(*) = 1)'
                'alias' => 'T1_x',
                'type' => 'INNER',
                'conditions' => array('T1_x.id = T1.id')
                )
            )
    );
    
    
    $T1 = $this->paginate();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多