@Corsair_TM

Как выполнить многотабличный запрос Laravel Query Builder?

Есть запрос, который работает на локалке, выгрузил на хостинг - ошибка.

Нужно получить все записи из offers_funds, добавить некоторые поля из users и получить количество сделок для каждой записи из offers_funds.

Ошибка:
SQLSTATE[42000]: Syntax error or access violation: 1055 'corsair_test.offers_funds.user_id' isn't in GROUP BY (SQL: select count(*) as aggregate from (select `offers_funds`.*, `users`.`name`, `users`.`country_code`, `users`.`country`, `users`.`city`, `users`.`last_online`, COUNT(leads.offer_id) as leads_count from `offers_funds` left join `users` on `offers_funds`.`user_id` = `users`.`id` left join `leads` on `offers_funds`.`id` = `leads`.`offer_id` where `offers_funds`.`status` = 1 group by `offers_funds`.`id`) as `aggregate_table`)

$offers = DB::table('offers_funds')
            ->leftJoin('users', 'offers_funds.user_id', '=', 'users.id')
            ->leftJoin('leads', 'offers_funds.id', '=', 'leads.offer_id')
            ->select('offers_funds.*', 'users.name', 'users.country_code', 'users.country', 'users.city', 'users.last_online', DB::raw('COUNT(leads.offer_id) as leads_count'))
            ->where('offers_funds.status', 1)
            ->groupBy('offers_funds.id')
            ->orderBy('leads_count', 'DESC')
            ->paginate(10);
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
iMedved2009
@iMedved2009
Не люблю людей
Я так понимаю что база данных MySQL. И у вас на локалке один strict_mode, а на проде другой. На локалке не правильный - и вам соверженно правильно пишут что нельзя выбирать поля в селекте если они не используются в group by.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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