$id = $_GET['id']; $model=new Refv004(); $model->unsetAttributes(); $criteria = new CDbCriteria(); $criteria->condition = 't.level_1_id is not null and t.level_2_id is not null and t.level_3_id is null and t.oms=1 and schedules.id>0'; $criteria->compare('mo.id',$id); $criteria->with = array('doctors','mo','schedules'); $criteria->group = 't.name'; $criteria->order = 't.name'; $criteria->together = true;
Но вот почему то когда пишу имя связи 'schedules' в $criteria->with = array('doctors','mo','schedules'); выдает ошибку:
"CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'doctors'. The SQL statement executed was: SELECT COUNT(DISTINCT `t`.`id`) FROM `refv004` `t` LEFT OUTER JOIN `doctor` `doctors` ON (`doctors`.`id_spec`=`t`.`id`) LEFT OUTER JOIN `refmo` `mo` ON (`doctors`.`id_mo`=`mo`.`id`) LEFT OUTER JOIN `doctor` `doctors` ON (`doctors`.`id_spec`=`t`.`id`) LEFT OUTER JOIN `schedule` `schedules` ON (`doctors`.`id`=`schedules`.`id_doctor`) WHERE ((t.level_1_id is not null and t.level_2_id is not null and t.level_3_id is null and t.oms=1 and schedules.id>0) AND (mo.id=:ycp0))"
Как я понимаю, проблемма из - за того что я два раза пытаюсь сджойнить через связь doctors. Кто может подсказать как это решить?