【发布时间】:2021-06-04 00:57:53
【问题描述】:
我有一个这样的查询:
$task_query = DB::table('table_a')
->join('materials', 'table_a.material_id', '=', 'materials.id')
->join('products', 'table_a.product_id', '=', 'products.id')
->select(
'table_a.colum_1',
'table_a.colum_2',
'table_a.colum_3',
'materials.colum_1 as material_column_1',
'materials.colum_2 as material_column_2',
'materials.colum_3 as material_column_3',
'products.colum_1 as product_column_1',
'products.colum_2 as product_column_2',
'products.colum_3 as product_column_3',
)
->when( some conditions )
->get();
此查询返回包含我想要的所有列的平面结果。但是,我需要一种方法将一些列分组为这样的子数组:
$task_query = DB::table('table_a')
->join('materials', 'table_a.material_id', '=', 'materials.id')
->join('products', 'table_a.product_id', '=', 'products.id')
->select(
'a' => [
'table_a.colum_1',
'table_a.colum_2',
'table_a.colum_3',
],
'material' => [
'materials.colum_1',
'materials.colum_2',
'materials.colum_3',
],
'product' => [
'products.colum_1',
'products.colum_2',
'products.colum_3',
],
)
->when( some conditions )
->get();
我该怎么做?
【问题讨论】:
-
你为什么不在那之后获取数据并构建和数组
-
foreach / !in_array
-
@ReubenGomes,如果我能在查询中执行一次就更好了。如果我在查询后构建数组,那就很复杂了。我将花费太多的“if - elseif - else / in_array”语句来将每一列放入 $array_a 或 $array_m 或 $array_p。
-
@brombeer,谢谢。我更正了。
-
@QuangNguyen sql 无法将数据作为数组获取,您必须构建自己的数组帖子
标签: arrays laravel select eloquent