Laravel的车站分组

时间:2017-05-04 19:23:45

标签: sql laravel fluent

我正试图在laravel中显示此查询的结果,这次只使用流利,因为Eloquent结果太嵌套了,总共从6个表中恢复了数据

$result = \DB::table('estacion')

          ->join('equipo_estacion as eq_est', 'estacion.id','=', 'eq_est.estacion_id')
          ->join('equipo as eq', 'eq_est.equipo_id', 'eq.id')
          ->join('equipo_parametro as eq_param','eq.id','eq_param.equipo_id')
          ->join('parametro as pa','eq_param.parametro_id','pa.id')
          ->join('region','estacion.region_id','region.id')
          ->select('estacion.id','estacion.nombre as nom_est','eq.id as id_eq','eq.nombre as nombre_eq','pa.nombre as nombre_parametro','region.nombre as nombre_region')
          ->get();

我得到了这个集合,我需要以下面两张图片中显示的格式显示数据:

collection retrieved

我只需要每站一排(例如Antofagasta)并且我将数据分成两个独立的阵列,因为Antofagasta有两个设备,每个站可以有0,1个或许多设备(Equipo),所以如果站Antofagasta有两个设备(环境101m和Equipo3),每个设备有1个参数测量(环境测量MP10,Equipo3测量NO2),我必须向每个站点和右侧显示该站点的设备测量的参数,例如在Antofagasta站有两个设备,我在相应列中显示一个MP10,在相应列中显示另一个NO2。对于其他两个行显示相同

   
(Title)Region   Station       MP10     MP2.5-     SO2 -    N02  -   CO   
---------------------------------------------------------------------------
(row1)Region1  Antofagasta    YES        NO       NO       YES      NO 

1 个答案:

答案 0 :(得分:0)

您是否考虑过重建查询?您可以在SQL中使用pivot(依赖于RDBMS)来为您的设备构建列。

很抱歉,在回答中没有评论,但我无法添加评论。