选择具有相等值的行

igetnqfo  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(225)

在拉雷维尔怎么办?
1) 从表行获取 user_id 这些值相等吗?
2) 返回和 some_amount 此选定行中的值

Table:
 - id;
 - user_id;
 - some_amount;

表中有一堆证书,其中包含属于不同用户的金额。我需要找到所有证书,属于一个用户(一个用户可以有几个证书),并计算有多少钱,他从他的所有证书

vbopmzt1

vbopmzt11#

如果您不想为单个用户查询这个问题,那么听起来您需要按用户分组并对证书的结果求和。
@philcross的答案非常接近,您只需要修改它来添加group子句并删除where条件。像这样:

ModelName::groupBy('user_id')->sum('some_amount');

\DB::table('table_name')->groupBy('user_id')->sum('some_amount');

通常雄辩或查询生成器将有一个方法,该方法与如何在原始sql中执行此操作有关。我发现编写或思考如何编写原始sql,然后从中慢慢填充雄辩的或查询生成器是很有帮助的。

xcitsw88

xcitsw882#

如果使用模型:

ModelName::where('user_id', 1)->sum('some_amount')

如果使用的是查询生成器:

\DB::table('table_name')->where('user_id', 1)->sum('some_amount');

以下是查询生成器的文档:
https://laravel.com/docs/5.6/queries
模型:https://laravel.com/docs/5.6/eloquent 模型关系:https://laravel.com/docs/5.6/eloquent-relationships 收藏:https://laravel.com/docs/5.6/collections

相关问题