Запрос:
Код: Выделить всё
SELECT *
FROM `service_list` s
LEFT JOIN service s2k ON s2k.service_id = s.id
AND s2k.k_id =1
'service' => array(self::HAS_ONE, 'Service', 'service_id'),
Нужно джоинить таблицы так, чтобы получались все данные из таблицы ServiceList + данные из Service если совпадает условие (там где k_id не совпадает будет просто null).
Пробую писать так:
Код: Выделить всё
$creteria = new CDbCriteria();
$creteria->join = "LEFT JOIN service ON service_id = t.id AND service.k_id = {$kID}";
return ServiceList::model()->findAll($creteria);
Если делаю так:
Код: Выделить всё
return ServiceList::model()
->with(array(
'service' => array(
'joinType' => 'left join',
'condition'=>"service.k_id = {$kID}",
)
))
->findAll();
Понимаю, что можно написать напрямую SQL-запросом, но хочется сделать все правильно. Надеюсь на вашу помощь.