在拉雷维尔怎么办?1) 从表行获取 user_id 这些值相等吗?2) 返回和 some_amount 此选定行中的值
user_id
some_amount
Table: - id; - user_id; - some_amount;
表中有一堆证书,其中包含属于不同用户的金额。我需要找到所有证书,属于一个用户(一个用户可以有几个证书),并计算有多少钱,他从他的所有证书
vbopmzt11#
如果您不想为单个用户查询这个问题,那么听起来您需要按用户分组并对证书的结果求和。@philcross的答案非常接近,您只需要修改它来添加group子句并删除where条件。像这样:
ModelName::groupBy('user_id')->sum('some_amount');
或
\DB::table('table_name')->groupBy('user_id')->sum('some_amount');
通常雄辩或查询生成器将有一个方法,该方法与如何在原始sql中执行此操作有关。我发现编写或思考如何编写原始sql,然后从中慢慢填充雄辩的或查询生成器是很有帮助的。
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
2条答案
按热度按时间vbopmzt11#
如果您不想为单个用户查询这个问题,那么听起来您需要按用户分组并对证书的结果求和。
@philcross的答案非常接近,您只需要修改它来添加group子句并删除where条件。像这样:
或
通常雄辩或查询生成器将有一个方法,该方法与如何在原始sql中执行此操作有关。我发现编写或思考如何编写原始sql,然后从中慢慢填充雄辩的或查询生成器是很有帮助的。
xcitsw882#
如果使用模型:
如果使用的是查询生成器:
以下是查询生成器的文档:
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