Почему выдает ошибку при запросе к БД?

$items = DB::table('catalog_index AS f')
            ->select(DB::raw("
                cp.name,
                cp.type,
                f.facet_id,
                f.value,
                MIN(f.value_num) min_value_num,
                MAX(f.value_num) max_value_num,
                COUNT(DISTINCT f.product_id) AS cnt
            "))
            ->join('catalog_properties AS cp', 'cp.id', '=', 'f.facet_id')
            ->where('f.section_id', '=', 440)
            ->groupBy(['f.facet_id', 'f.value'])
            ->get();


Выдает ошибку:

SQLSTATE[42000]: Syntax error or access violation: 1055 'test-db.cp.name' isn't in GROUP BY (SQL: select cp.name, cp.type, f.facet_id, f.value, MIN(f.value_num) min_value_num, MAX(f.value_num) max_value_num, COUNT(DISTINCT f.product_id) AS cnt from `catalog_index` as `f` inner join `catalog_properties` as `cp` on `cp`.`id` = `f`.`facet_id` where `f`.`section_id` = 440 group by `f`.`facet_id`, `f`.`value`)


Если скопировать в консоль получившийся SQL запрос, то он отрабатывает без проблем.

так же если из select убрать оба поля "cp." то ошибка в laravel исчезает
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@vism
strict настройка подключения, если память не обманывает
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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