Reputation: 595
I have following associations
users hasMany domains
domains hasMany visiters
domains hasMany pageviews
And following is the query
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
I want to convert into cakephp find query for paginate as cakephp does not allow $this->paginate("mysql query here");
Upvotes: 0
Views: 348
Reputation: 3200
You can simply execute your query as
$this->ModelName->query('your_sql_query');
This will do your work for complex queries like above
Upvotes: 0
Reputation: 11855
I would recommend giving this tool a go.
http://dogmatic69.com/sql-to-cakephp-find-converter
This will create you a custom find method for this query, allowing you to implement it in your model.
Upvotes: 1