Laravel - 合并表格中的每两行,每行值增加两列

问题描述 投票:0回答:0

我有一张表,记录如下:

id entry_id 类型 数量
1 1 500
2 1 600
3 2 100
4 2 20000

我想要一个查询来根据 entry_id 合并行以获得这样的表:

id entry_id in_amount out_amount
1 1 500 600
3 2 100 20000

我想使用 PHP Laravel 执行此操作。

我尝试使用 group concat 但我没有得到想要的结果。

这是我的代码尝试:

DB::table('entry_entities')
        ->selectRaw("
            entry_entities.entry_id,
            GROUP_CONCAT(entry_entities.entity_type, '-', entry_entities.account_id) as account_ids
        ")
        ->groupBy('entry_entities.entry_id')
        ->get()
        ->map(function($row) {
            $accountIds = explode(',', $row->account_ids);
            foreach($accountIds as $account) {
                [$key, $value] = explode('-', $account);
                $row->{$key} = $value;
            }
            return $row;
        });

这不是一次有效的尝试,因为我需要一个可以用作另一个查询的查询。谢谢!

php sql laravel
© www.soinside.com 2019 - 2024. All rights reserved.