การแปลงแบบสอบถามแบบง่าย ๆ เป็น cakephp ค้นหาแบบสอบถามสำหรับเลขหน้าในคอนโทรลเลอร์

ฉันมีสมาคมดังต่อไปนี้

  1. ผู้ใช้มีหลายโดเมน

  2. โดเมนมีผู้เยี่ยมชมจำนวนมาก

  3. โดเมนมีการดูหน้าเว็บจำนวนมาก

และต่อไปนี้เป็นคำถาม

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


person Garry    schedule 01.08.2013    source แหล่งที่มา
comment
คำถามที่ซับซ้อนของคุณมีลักษณะอย่างไร :)? คุณได้ลองอะไรแล้วหรือยัง?   -  person AD7six    schedule 01.08.2013
comment
ฉันสามารถเข้าร่วม (โดเมนที่มีผู้เยี่ยมชม) และ (โดเมนที่มีการดูหน้าเว็บ) โดยใช้การเชื่อมโยง cakephp แต่จะเข้าร่วมสองโดเมนนี้ได้อย่างไร ฉันไม่มีความคิดเกี่ยวกับเรื่องนั้น   -  person Garry    schedule 01.08.2013


คำตอบ (2)


ฉันอยากจะแนะนำให้ลองใช้เครื่องมือนี้

http://dogmatic69.com/sql-to-cakephp-find-converter

การดำเนินการนี้จะสร้างวิธีการค้นหาที่กำหนดเองสำหรับการสืบค้นนี้ ซึ่งช่วยให้คุณสามารถนำไปใช้ในโมเดลของคุณได้

person David Yell    schedule 01.08.2013

คุณสามารถดำเนินการค้นหาของคุณเป็น

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

วิธีนี้จะทำงานของคุณกับข้อความค้นหาที่ซับซ้อนเช่นด้านบน

person Anand G    schedule 06.08.2013