It's going to be fixed in 1.3. https://trac.cakephp.org/ticket/5864
By the way, does anybody know when the 1.3 branch will be started? On Feb 24, 9:57 am, Nextri <[email protected]> wrote: > I'm getting a lot of extra queries when doing certain contains. > Cakeversion: 1.2.0.7962 > > I've got three Models > > Member > Item > Itemrating > > Itemrating belongsTo Item > Item BelongsTo Member > > I'm trying to do a find on Itemrating and contain Item and Member > > Here is the code to do the find: > $this->Itemrating->contain(array('Item'=>array('fields'=>array > ('id','slug','member_id'),'Member'=>array('fields'=>array > ('id','username','slug','gender_id','birth'))))); > $data = $this->Itemrating->find('all',array('conditions'=>array > ('date'=>date('Y-m-d'),'Item.type_id'=>1, 'Itemrating.votes > > >'=>0),'order'=>array('Itemrating.rating'=>'DESC'),'limit'=>20)); > > It should be possible for cake to get all this info in one query. But > instead I get 1 query that gets the data from itemratings and member, > then for each result from that query, two additional queries are > generated, one to get the member data, and one to get the item data. > Is this a bug? Or am I doing something wrong? > > Here are the queries being built: > > Nr Query Error Affected Num. rows Took (ms) > 1 SELECT `Itemrating`.`id`, `Itemrating`.`item_id`, > `Itemrating`.`date`, `Itemrating`.`votes`, `Itemrating`.`rating`, > `Item`.`id`, `Item`.`slug`, `Item`.`member_id` FROM `itemratings` AS > `Itemrating` LEFT JOIN `items` AS `Item` ON (`Itemrating`.`item_id` = > `Item`.`id`) WHERE `date` = '2009-02-24' AND `Item`.`type_id` = 1 AND > `Itemrating`.`votes` > 0 ORDER BY `Itemrating`.`rating` DESC LIMIT 20 > 3 3 10 > 2 SELECT `Item`.`id`, `Item`.`slug`, `Item`.`member_id` FROM `items` > AS `Item` WHERE `Item`.`id` = 3 1 1 0 > 3 SELECT `Member`.`id`, `Member`.`username`, `Member`.`slug`, > `Member`.`gender_id`, `Member`.`birth` FROM `members` AS `Member` > WHERE `Member`.`id` = 2 1 1 0 > 4 SELECT `Item`.`id`, `Item`.`slug`, `Item`.`member_id` FROM `items` > AS `Item` WHERE `Item`.`id` = 253 1 1 0 > 5 SELECT `Member`.`id`, `Member`.`username`, `Member`.`slug`, > `Member`.`gender_id`, `Member`.`birth` FROM `members` AS `Member` > WHERE `Member`.`id` = 2 1 1 0 > 6 SELECT `Item`.`id`, `Item`.`slug`, `Item`.`member_id` FROM `items` > AS `Item` WHERE `Item`.`id` = 1 1 1 0 > 7 SELECT `Member`.`id`, `Member`.`username`, `Member`.`slug`, > `Member`.`gender_id`, `Member`.`birth` FROM `members` AS `Member` > WHERE `Member`.`id` = 2 1 1 0 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
