带有子查询的控制器分页

Controller pagination with a subquery

我想在我的控制器中使用这个 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 中加入子查询的一种方法

我这里的模特名字是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();