[Resuelto] ayuda con consulta en laravel

Publicado hace 10 meses por luis

tengo una base de datos de partidos jugados por jugadores con los campos: id - partido_id - equipojugador_id - id_equipo - id_jugador - minutos_jugados (1-2-1-1-20-90) primera fila (2-2-3-1-27-45) segunda fila (3-3-1-1-20-90) tercera fila (4-3-3-1-27-60) cuarta fila los campos partido_id y equipojugador_id son llaves foráneas a otras tablas, mientras que los campos id_equipo e id_jugador los genera la tabla a partir de las llaves foráneas de equipojugador_id, es decir el equipojugador_id 1 esta compuesto del (id_jugador 20 e id_equipo 1). ¿Como puedo hacer una consulta para representar una gráfica de estadísticas que me indique los minutos jugados de los jugadores de un equipo a lo largo de los partidos de una temporada? Es decir, necesito que me saque la suma de los minutos jugados del jugador 20, que ha jugado dos partidos, pertenece al equipo 1 y su suma es 180. y lo mismo con el jugador 27, que ha jugado dos partidos, pertenece al equipo 1 y su suma es de 105. Claro todo esto dinamicamente y con mas jugadores y partidos, la tabla es solo un ejemplo. Muchas gracias.

Editado
Mejor respuesta Marcada por España luis

kmario19 hace 10 meses

Hola, creo entender lo que quieres.

Puedes hacerlo con Query Builder, prueba con esto:

$estadisticas_jugadores = DB::table('partidos_jugados')
->join('jugadores', 'partidos_jugados.id_jugador', '=', 'jugadores.id')
->select('jugadores.*', DB::raw('SUM(partidos_jugados.minutos_jugados) as total_minutos_jugados'))
->where('partidos_jugados.equipojugador_id', $equipojugador_id)
->groupBy('partidos_jugados.id_jugador')->get();

Con esto debería retornar una lista de jugadores con toda la información más el total de minutos jugados para el equipo seleccionado. No estoy seguro si el equipo lo determina equipojugador_id o equipo_id. En la claúsula where puedes cambiar la columna.

Espero te sirva, más información por acá: Database: Query Builder