mengubah kueri sederhana menjadi kueri pencarian cakephp untuk paginasi di pengontrol

Saya memiliki asosiasi berikut

  1. pengguna memiliki banyak domain

  2. domain memiliki banyak pengunjung

  3. domain memiliki banyak tampilan halaman

Dan berikut ini pertanyaannya

    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

Saya ingin mengonversi menjadi kueri pencarian cakephp untuk paginasi karena cakephp tidak mengizinkan $this->paginate("mysql query here");


person Garry    schedule 01.08.2013    source sumber
comment
seperti apa pertanyaan kompleks Anda :)? Sudahkah Anda mencoba sesuatu?   -  person AD7six    schedule 01.08.2013
comment
Saya dapat bergabung (domain dengan pengunjung) dan (domain dengan tampilan halaman) menggunakan asosiasi cakephp tetapi bagaimana cara menggabungkan keduanya, saya tidak tahu tentang itu   -  person Garry    schedule 01.08.2013


Jawaban (2)


Saya akan merekomendasikan untuk mencoba alat ini.

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

Ini akan membuatkan Anda metode pencarian khusus untuk kueri ini, memungkinkan Anda menerapkannya dalam model Anda.

person David Yell    schedule 01.08.2013

Anda cukup menjalankan kueri Anda sebagai

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

Ini akan melakukan pekerjaan Anda untuk pertanyaan kompleks seperti di atas

person Anand G    schedule 06.08.2013