У меня есть приложение с таблицами carrentals, carrental_images и carrental_rates. Я пытаюсь сделать левое соединение, чтобы заполнить результат, который показывает изображение и цену. Однако я получаю компанию по прокату автомобилей, показывающую четыре раза. Он имеет 4 изображения, связанные с ним. Как я могу получить только одно изображение за аренду?Cakephp присоединяется к трем таблицам с дубликатами
$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));
Я нашел ответ здесь http://stackoverflow.com/questions/7976793/cakephp-returning-duplicate-records GROUP BY является решением – earnest