laravel 查询 - 加入 2 个表和 groupBy 相同的 ID
Posted
技术标签:
【中文标题】laravel 查询 - 加入 2 个表和 groupBy 相同的 ID【英文标题】:laravel query - join 2 table and groupBy same ID 【发布时间】:2021-08-06 07:30:50 【问题描述】:我有两张这样的桌子
表Base_infos
| 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_types的第一条记录
'id':'6' 'base_name':'name6' '类型':'0'如何在一行中显示所有类型?我正在使用 Laravel 7 和 mysql
【问题讨论】:
您的加入条件似乎也有误。 base_id 列的意义何在? (提示) 【参考方案1】:为什么需要groupBy('base_infos.id')
?
id 不是唯一的,如果是这样,您就不需要该分组。
【讨论】:
我需要合并 base_infos 表的 id 相同的行,这就是我使用 groupBy 的原因【参考方案2】:您是否管理模型中的关系? 如果你已经在模型中设置了关系,你可以使用这个方法来合并/GroupBy关系之间 我用了这个方法,效果很好
// 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();
【讨论】:
我确实有模特关系,谢谢。我解决了我的问题以上是关于laravel 查询 - 加入 2 个表和 groupBy 相同的 ID的主要内容,如果未能解决你的问题,请参考以下文章