Вот пример кода запроса:
Код: Выделить всё
$query = \app\models\Companies::find()
->with(['category', 'citys', 'category.parentCategory'])
->joinWith(['relsubcompany', 'filials'])
->where(['relations_subcategory_company.subcategory_id'=>$podcategory->id,])
->andWhere(['companies.active'=>1])
->orderBy('companies.balls DESC');
$query->orFilterWhere(['=', 'filials.area_id', $area->id]);
Код: Выделить всё
SELECT `companies`.* FROM `companies` LEFT JOIN `relations_subcategory_company` ON `companies`.`id` = `relations_subcategory_company`.`company_id` LEFT JOIN `filials` ON `companies`.`id` = `filials`.`id_company` WHERE (((`relations_subcategory_company`.`subcategory_id`='760') AND (`companies`.`active`=1)) AND (`companies`.`area_id` = 15)) OR (`filials`.`area_id` = 15) ORDER BY `companies`.`balls` DESC
Второй вопрос, я так понимаю что при joinWith вытягивается только главная таблица по приджойненой идет только поиск. Как вытянуть поля и из приджойненой таблицы и как потом их выводить.