Ошибка в запросе laravel

102
21 июня 2021, 04:50

почему при такой выборке

$managers = DB::table('managers')
            ->leftJoin('users', 'users.id', 'managers.manager_id')
            ->leftJoin('user_attributs', 'user_attributs.user_id', 'managers.manager_id')
            ->leftJoin('manager_accounts', 'manager_accounts.manager_id', 'managers.manager_id')
            ->select('user_attributs.avatar','user_attributs.fullname', 'users.id',DB::raw('count(manager_accounts.id) as count_m'))
            ->where('managers.user_id', Auth::user()->id)
            ->groupBy('user_attributs.fullname')
            ->get();

выдает такую ошибку

QLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'extremje_insta.user_attributs.avatar' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select user_attributs.avatar, user_attributs.fullname, users.id, count(manager_accounts.id) as count_m from managers left join users on users.id = managers.manager_id left join user_attributs on user_attributs.user_id = managers.manager_id left join manager_accounts on manager_accounts.manager_id = managers.manager_id where managers.user_id = 6 group by user_attributs.fullname)

Answer 1

У Вас ошибка sql_mode=only_full_group_by . Т.е вы делаете группировку, но не используете агрегирование либо группировку на все поля, которые выводите.

Есть несколько решений:

1) Отключить only_full_group_by. Вот есть ответы: https://stackoverflow.com/questions/23921117/disable-only-full-group-by .

2) Сделать группировку по всем полям, которые вы select . Т.е. как то так:

$managers = DB::table('managers')
            ->leftJoin('users', 'users.id', 'managers.manager_id')
            ->leftJoin('user_attributs', 'user_attributs.user_id', 'managers.manager_id')
            ->leftJoin('manager_accounts', 'manager_accounts.manager_id', 'managers.manager_id')
            ->select('user_attributs.avatar','user_attributs.fullname', 'users.id',DB::raw('count(manager_accounts.id) as count_m'))
            ->where('managers.user_id', Auth::user()->id)
            ->groupBy('user_attributs.fullname')
            ->groupBy('user_attributs.avatar')
            ->groupBy('user_attributs.fullname')
            ->groupBy('users.id')
            ->get();
READ ALSO
RedBeanPHP и PHP: поиск и вывод данных

RedBeanPHP и PHP: поиск и вывод данных

Подскажите, пожалуйста, на простом примере, как вывести список зарегистрированных пользователей из БД, используя поиск по двум критериям,...

73
Вывод записей в single.php за исключением самой записи

Вывод записей в single.php за исключением самой записи

вывожу через singlephp записи по категориям

112
Как исправить ошибку php?

Как исправить ошибку php?

Появилась такая ошибка:

91
Как получить значение со стороннего сайта на хостинге

Как получить значение со стороннего сайта на хостинге

Когда я пытаюсь получить код страницы другого сайта с помощью php функции file_get_contents, я ничего не получаюКак я понял это хостинг блокирует

102