#mysql #laravel #eloquent
Вопрос:
У меня есть запрос, который извлекает оценки учащихся, но я хочу также извлечь имя и фамилию учащегося, но я получаю ошибку
Кодом sqlstate[42000]: синтаксическая ошибка или нарушение прав доступа: 1055 ‘shunifu_db.пользователи.имя не в группе (SQL: выберите
name
, знаки.student_id,круглая(средняя(от Марка)) а Марк сgrades
внутренним соединениемgrades_students
наgrades_students
.grade_id
=grades
.id
внутреннее соединениеusers
наgrades_students
.student_id
=users
.id
внутреннее соединениеmarks
наmarks
.student_id
=grades_students
.student_id
гдеgrades
.stream_id
= 5, аassessement_id
= 1 группу поmarks
.student_id
)
вот мой код
$result = DB::table('grades')
->join('grades_students', 'grades_students.grade_id', '=', 'grades.id')
->join('users','grades_students.student_id','=','users.id')
->join('marks','marks.student_id','=','grades_students.student_id')
->where('grades.stream_id', $request->stream_name)
->where('assessement_id',$request->assessement)
->select(DB::raw('marks.student_id,ROUND(AVG(mark)) as mark'))
->groupBy('marks.student_id')
->get()
Комментарии:
1. добавьте более подробную информацию, а также заполните свой код
2. @Shahrukh Я только что обновил код
3. в какой таблице вы сохраняете имя студента?
4. @Shahrukh, В таблице Пользователей
5. если вы используете group by , вам необходимо выбрать определенные столбцы, в которых вы выбираете все столбцы. Используйте select в запросе для выбора определенных столбцов.
Ответ №1:
Может быть, это сработает
$result = DB::table('grades')
->join('grades_students', 'grades_students.grade_id', '=', 'grades.id')
->join('users','grades_students.student_id','=','users.id')
->join('marks','marks.student_id','=','grades_students.student_id')
->where('grades.stream_id', $request->stream_name)
->where('assessement_id',$request->assessement)
->select(DB::raw('users.id,users.name,ROUND(AVG(mark)) as mark'))
->groupBy(['users.id', 'users.name'])
->get()
Здесь я использую таблицу пользователей для группировки, а также для извлечения имени.
Комментарии:
1. к какой модели относится assessment_id? у вас есть модели отношений? (пользователь->оценки->>отметки и отметки->>>оценка и оценка->>>>пользователь и т.д.)