Cakephp在显示重复项的3个表中联接

Cakephp在显示重复项的3个表中联接,php,mysql,cakephp,Php,Mysql,Cakephp,我有一个表carrentals,carrentalu图像和carrentalu率的应用程序。 我试图做一个左连接来填充一个显示图像和价格的结果。然而,我得到一家汽车租赁公司展示了四次。它有4个与之关联的图像。如何在每次租赁中仅获得一张图像 $options = array( 'joins' => array( array( 'alias' => 'cm',

我有一个表carrentals,carrentalu图像和carrentalu率的应用程序。 我试图做一个左连接来填充一个显示图像和价格的结果。然而,我得到一家汽车租赁公司展示了四次。它有4个与之关联的图像。如何在每次租赁中仅获得一张图像

$options = array(
                'joins' => array(
                    array(
                        'alias' => 'cm',  
                        'table' => 'carrental_images',                  
                        'type' => 'LEFT',
                        'conditions' => array(
                            'cm.carrental_id = Carrental.id = '
                        ),
                    ),

                    array(
                        'alias' => 'cr',  
                        'table' => 'carrental_rates',                   
                        'type' => 'LEFT',
                        'conditions' => array(
                            'cr.carrental_id = Carrental.id'                            
                        ),

                    ),                  

                ),
                'fields' => array(
                    'cm.image',
                    'cr.dailyRate',

                    'Carrental.id',
                    'Carrental.name',
                    'Carrental.carrental_url',                  
                    'lower(CONCAT("mysitem/cake/carrentals/", Carrental.carrental_url)) AS urlLink',    
                    'lower(CONCAT("mysite/cake/img/carrentals/thumbs/", cm.image)) AS imageLink'                
                ),
                'recursive' => 0,               
                'conditions' => array('cm.image_order' => 0),
                'limit' => 10
            );
        $this->set('rentals', $this->Carrental->find('all', $options));

但是,您需要一个GROUP BY来限制为一行。您应该考虑将照片标记为列表的显示缩略图,以便用户可以选择他们想要向观众显示的PIC。这就不需要分组方式。

我在这里找到了答案,分组方式就是解决方案