Php laravel查询-按相同ID联接2表和groupBy

Php laravel查询-按相同ID联接2表和groupBy,php,mysql,laravel,laravel-7,laravel-query-builder,Php,Mysql,Laravel,Laravel 7,Laravel Query Builder,我有两张这样的桌子 $datas = DB::table('base_infos') ->select('base_infos.id as id', 'base_infos.base_name', 'base_types.type') ->join('base_types', 'base_infos.id', '=', 'base_types.id') ->groupBy('base_infos.id') ->get(); 表库信息 |

我有两张这样的桌子

$datas = DB::table('base_infos')
    ->select('base_infos.id as id', 'base_infos.base_name', 'base_types.type')
    ->join('base_types', 'base_infos.id', '=', 'base_types.id')
    ->groupBy('base_infos.id')
    ->get();
表库信息

| id |base_name|
+----+---------+
|  1 |   name1 |
|  2 |   name2 |
|  3 |   name3 |
|  4 |   name4 |
|  5 |   name5 |
|  6 |   name6 |
表基类型

+----+---------+---------+
| id |  base_id|     type|
+----+---------+---------+
|  1 |       1 |       1 |
|  2 |       2 |       0 |
|  3 |       3 |       1 |
|  4 |       4 |       0 |
|  5 |       5 |       1 |
|  6 |       6 |       1 |
|  7 |       6 |       0 |
我的问题是这样的

$datas = DB::table('base_infos')
    ->select('base_infos.id as id', 'base_infos.base_name', 'base_types.type')
    ->join('base_types', 'base_infos.id', '=', 'base_types.id')
    ->groupBy('base_infos.id')
    ->get();
但是数据只返回像这样的表base_类型的第一条记录

$datas = DB::table('base_infos')
    ->select('base_infos.id as id', 'base_infos.base_name', 'base_types.type')
    ->join('base_types', 'base_infos.id', '=', 'base_types.id')
    ->groupBy('base_infos.id')
    ->get();
  • “id”:“6”
  • “基本名称”:“名称6”
  • “类型”:“0”

如何在一行中显示所有类型?我正在使用Laravel7和mysql

为什么需要
groupBy('base\u infos.id')

id不是唯一的,如果是这样,您不需要分组。

您是否管理模型中的关系?
如果已在模型中设置了关系,则可以使用此方法在关系之间合并/分组
我使用了这种方法,效果很好

// Displays the most purchased items [ TAMPIL ]
    $most_item_buy = Item::with(["item_orders" => function($query) {
        $month = date('m');
        $year = date('Y');

        $query->selectRaw('*, sum(item_order_details.quantity) as total_item');
        $query->groupBy('pivot_item_id');
        
        $query->where("order_status", "=", "FINISH");
        $query->whereMonth("item_orders.created_at", $bulan);
        $query->whereYear("item_orders.created_at", $tahun);

    }, "item_images"])
        ->withTrashed()
        ->get();

我需要合并base_infos表的id相同的行,这就是为什么我使用groupByI,我在模型中确实有关系,谢谢。我解决了我的问题。你的连接条件似乎也错了。base_id列有什么意义?(提示)