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列有什么意义?(提示)