我有两个以上的表,从数据库中提取 2,00,000 记录花费了太多时间,我所期待的,所以我需要将其转换为子查询?
以下代码:
->join('track_details','track_details.code','=',$esealTable.'.primary_id')
->join('track_history as th','th.track_id','=','track_details.track_id')
->join('locations as l','l.location_id','=','th.src_loc_id')
->join('products','products.product_id','=',$esealTable.'.pid')
->where(['level_id'=>0, 'products.product_type_id'=>8003])
->whereIn('l.location_type_id',[741,744])
->whereIn('th.transition_id',[537,569]);
->get(['primary_id as iot','products.material_code','th.sync_time as datetime'])
->take(200000);
答案 0 :(得分:1)
如果您需要data
中使用query
检索到的所有json
,
Laravel提供类似于toJson()
功能的toArray()
功能。请参阅文档here。您只需在查询末尾添加toJson()
,如下所示:
->join('track_details','track_details.code','=',$esealTable.'.primary_id')
...
...
..
->get(['primary_id as iot','products.material_code','th.sync_time as datetime'])
->take(200000)
->toJson();
通过这种方式,您可以直接将提取的数据转换为json
格式。