我正试图在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();
我得到了这个集合,我需要以下面两张图片中显示的格式显示数据:
我只需要每站一排(例如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
答案 0 :(得分:0)
您是否考虑过重建查询?您可以在SQL中使用pivot(依赖于RDBMS)来为您的设备构建列。
很抱歉,在回答中没有评论,但我无法添加评论。