gpt4 book ai didi

laravel - 如何从联接中的一组记录中获取列的总和?

转载 作者:行者123 更新时间:2023-12-04 19:53:52 28 4
gpt4 key购买 nike

我有一个将文件返回给我的请求。我想加入每个文件的 cargo 总和并汇总。

看起来像这样:

有文档。

  +-------------+----------+
| document_id | owner_id |
+-------------+----------+
| 52f20e4d | ef27737d |
| 3bfdc5aa | ef27737d |
+-------------+----------+

产品附在每份文件中。

  +-------------+-------------+-----------+
| product_id | document_id | total_sum |
+-------------+-------------+-----------+
| b60624a7 | 52f20e4d | 10 |
| fcc21801 | 52f20e4d | 5 |
| d5cbe99d | 3bfdc5aa | 3 |
| 5e537533 | 3bfdc5aa | 4 |
+-------------+-------------+-----------+

我的 php 代码:

$result = DB::table('documents as docs')->leftJoin('products as t_products', function($join) {
$join->on('t_products.document_id', '=', 'docs.document_id');
})->where('docs.owner_id', '=', $currentUserId)->select('docs.document_id', 't_products.total_sum')
->get();

return response()->json($result);

我得到以下信息:

[
{
"document_id": "52f20e4d",
"total_sum": "5"
},

{
"document_id": "52f20e4d",
"total_sum": "10"
},

{
"document_id": "3bfdc5aa",
"total_sum": "4"
},

{
"document_id": "3bfdc5aa",
"total_sum": "3"
}
]

但我只想看到两个条目,其中将汇总 total_sum。

像这样:

[
{
"document_id": "52f20e4d",
"total_sum": "15"
},

{
"document_id": "3bfdc5aa",
"total_sum": "7"
}
]

最佳答案

按文档id和总和的总和添加分组

$result = DB::table('documents as docs')
->leftJoin('products as t_products', function($join) {
$join->on('t_products.document_id', '=', 'docs.document_id');
})
->where('docs.owner_id', '=', $currentUserId)
->selectRaw('docs.document_id, sum(t_products.total_sum) as total_sum')
->groupBy('docs.document_id')
->get();

关于laravel - 如何从联接中的一组记录中获取列的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59644901/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com