Столбец Laravel 5 не содержится ни в статистической функции, ни в GROUP BY - PullRequest
0 голосов
/ 05 июля 2019

Я получил ошибку в SQL при попытке присоединиться и сгруппировать идентификатор с помощью Laravel.

Столбец 'push_notifications.title' недопустим в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении GROUP BY

Я пытался использовать Макс и Мин, но все еще получала ошибку.

Вот мой код:

$data  = $this->model->select( 'push_notifications.id', 'push_notifications.title', 'push_notifications.description', 'push_notifications.attachment', 'push_notifications.feature_id', 'push_notifications.target_id', 'features.title as feature', 'push_notifications.end_at')
            ->join('push_notification_users', 'push_notification_users.push_notification_id', '=', 'push_notifications.id')
            ->join('push_notification_roles', 'push_notification_roles.push_notification_id', '=', 'push_notifications.id')
            ->leftJoin('features', 'features.id', '=', 'push_notifications.feature_id')
            ->where( 'push_notifications.notif_target', 'homepage' )
            ->where(function($role) {
                $roles = RoleUser::where('user_id',$this->user->id)->first();
                $role->where( 'push_notification_roles.deleted_at', null )
                    ->where( 'push_notification_roles.role_id', $roles->role_id );
             })
            ->orWhere(function($user) {
                $user->where( 'push_notification_users.deleted_at', null )
                    ->where( 'push_notification_users.user_id', $this->user->id );
             })
            ->where( 'push_notifications.end_at', '>',  Carbon::now()->toDateTimeString() )
            ->groupBy( 'push_notifications.id' )
            ->get();

Если у вас есть какое-либо решение, просто скажите Мне, я буду очень признателен. Спасибо

1 Ответ

1 голос
/ 08 июля 2019

'push_notifications.title' не найден. Может быть какая-то орфографическая ошибка. Проверьте тщательно. Если это не так, пожалуйста, приложите скриншот структуры вашей таблицы, т.е. push_notifications.

Также другая причина заключается в том, что для push_notifications.id должны быть значения diff-diff для push_notifications.id, а в groupBy может быть несколько push_notifications.title для одного push_notifications.id. Выберите только «push_notifications.id», и некоторые другие уникальные столбцы будут работать в вашем случае.

см. Это: https://www.techonthenet.com/sql/group_by.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...