mafortis:
Tengo consulta de datos que algunos de los datos de TI es necesario que haya matriz, pero no está seguro de cómo conseguir esas matrices dentro de mi consulta.
Captura de pantalla
Tengo 2 students
en 2 semester
y 4 different classes
lo que trato de lograr es conseguir que cada estudiante semester and classes
en la matriz.
Así que tendría resultados como este:
código
$students = DB::table('schools')
->where('schools.id', $id)
->join('school_semesters', 'school_semesters.school_id', '=', 'schools.id')
->join('semester_classes', 'semester_classes.semester_id', '=', 'school_semesters.id')
->join('class_students', 'class_students.class_id', '=', 'semester_classes.id')
->join('users', 'users.id', '=', 'class_students.user_id')
->select(
'school_semesters.name as semester',
'semester_classes.name as class',
'users.name as students',
'users.id as id'
)
->groupBy('users.id') // return results as screenshot #2
->get();
¿Alguna idea?
Actualizar
resultado esperado sería algo como esto:
semester: ["Winter semester", "Our Spring semester"]
class: ["A1", "B1"]
students: "Student Two"
id: 5
DT_RowId: 5
así semester
y class
será array.
Dilip Hirapara:
Estás haciendo un grupo de user.id. mediante el uso de Grupo concat que obtendrá el resultado esperado.
->select(
\DB::raw('group_concat(DISTINCT school_semesters.name) as semester'),
\DB::raw('group_concat(DISTINCT semester_classes.name) as class'),
'users.name as students',
'users.id as id'
)