Dimgol
@Dimgol

Как записать LEFT JOIN ON ..OR в yii2?

Есть рабочий запрос:
SELECT
  COUNT(`user`.`id`) AS `count`,
  `user`.`id` AS `id`,
  `user`.`username` AS `username`,
  `user`.`email` AS `email`,
  `user`.`FIO` AS `FIO`,
  `user`.`status` AS `status`,
  `user`.`phone` AS `phone`
FROM (`user`
  LEFT JOIN `event` `e`
    ON (((`user`.`id` = `e`.`id_operator`)
    OR (`user`.`id` = `e`.`id_operator2`)
    OR (`user`.`id` = `e`.`id_journalist`)
    OR (`user`.`id` = `e`.`id_driver`))))
WHERE (`e`.`status` = 1)
GROUP BY `user`.`username`,
         `user`.`email`,
         `user`.`FIO`,
         `user`.`status`,
         `user`.`phone`

Выбрать и посчитать сколько есть записей сотрудника.
интересует как написать множественный LEFT JOIN OR ??
так не работает
...
   ->joinWith('operator',true,'LEFT JOIN')
   ->joinWith('journalist jour',true,'LEFT JOIN')
...
  • Вопрос задан
  • 361 просмотр
Решения вопроса 1
Dimgol
@Dimgol Автор вопроса
$newquery = User::find()
 ->select(['username',new Expression('count(id) as id')])
 -> leftJoin('event', 'event.id_operator=user.id  OR event.id_driver=user.id OR event.id_operator2=user.id  OR event.id_journalist=user.id')
            ->where(['event.status'=>1])
            ->groupBy(['username'])
            ->all();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы