代码之家  ›  专栏  ›  技术社区  ›  Philipp Kishkovarov

选择值相等的行

  •  -1
  • Philipp Kishkovarov  · 技术社区  · 8 年前

    在拉勒维尔怎么办?

    1)从表格行获取 user_id 值相等吗?

    2)收益总额 some_amount 所选行中的值

    Table:
     - id;
     - user_id;
     - some_amount;
    

    表中有一堆证书,其中有一些钱属于不同的用户。我需要找到属于一个用户的所有证书(一个用户可以拥有很少的证书),并计算他从所有证书中获得的钱

    2 回复  |  直到 8 年前
        1
  •  1
  •   James    8 年前

    如果您不想为单个用户寻找查询此问题的解决方案,那么您似乎希望按用户分组并对证书的结果求和。

    @philcross的答案非常接近,您只需要修改它来添加group子句并删除where条件。像这样:

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

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

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

        2
  •  1
  •   Phil Cross    8 年前

    如果使用模型:

    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