2016-06-07 66 views
-1

我想用在我的控制器此MySQL查询,而无需使用查询()。控制器分页使用子查询

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 

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

回答

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();