2013-08-01 38 views
0

我有以下关联转换简单的查询到CakePHP中查找查询PAGINATE在控制器

  1. 用户的hasMany域

  2. 域的hasMany visiters

  3. 域的hasMany浏览量

以下是查询

SELECT 
    pv.name,pv.domain_id,pv.counter as page_visits, v.ip, v.counter as visits 
FROM (
    SELECT `domains`.`name` , `pageviews`.`domain_id` , COUNT( `pageviews`.`domain_id`) as counter 
    FROM `pageviews` 
    LEFT JOIN `domains` ON ( `domains`.`id` = `pageviews`.`domain_id` 
    AND `domains`.`user_id` = '129') 
    WHERE `pageviews`.`user_id` = '129' 
    GROUP BY `pageviews`.`domain_id` 
    ORDER BY COUNT( `pageviews`.`domain_id`) DESC 
) as pv 
LEFT JOIN (
    SELECT `domains`.`name` , `visitors`.`ip` , `visitors`.`domain_id` , COUNT( `visitors`.`domain_id`) as counter 
    FROM `visitors` 
    LEFT JOIN `domains` ON ( `domains`.`id` = `visitors`.`domain_id` 
    AND `domains`.`user_id` = '129') 
    WHERE `visitors`.`user_id` = '129' 
    GROUP BY `visitors`.`domain_id` 
    ORDER BY COUNT( `visitors`.`domain_id`) DESC 
) as v 
    ON pv.domain_id = v.domain_id 

我想转换为cakephp查找查询分页,因为cakephp不允许$ this-> paginate(“mysql query here”);

+0

做你的复杂查询是什么样子:)?你有尝试过什么吗? – AD7six

+0

我可以使用cakephp协会加入(域名与访客)和(域名与网页浏览),但如何加入这两个我没有任何想法 – Garry

回答

0

你可以简单地执行查询如

$this->ModelName->query('your_sql_query'); 

这将做你的工作,为喜欢复杂的查询上述