数据查询一对多分组排序查询

1.就是现在两个表,一个用户,一个用户金额表 ,这时我要查询所有用户的总金额 还按总金额排序。
2。我现在是用户表关联金额表,但是用户金额表没得某用户数据就查询不出来那个用户了

数据查询一对多分组查询
3.应该咋查询

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3

你把sql语句打出来看看会比较清楚。应该是 用leftjoin 右表没有数据不显示

3年前 评论

你这个写的就有问题,你在前面写的是

where("member.id","!=",$uid)

后面你又在关联的表member_profit

where("member_profit.member_id",$uid)

搞不懂你的想法

3年前 评论

你说的问题可以,这个price_all可能是返回null

//排除当前uid
$userId=array_flip($userdata);
if (array_key_exists($uid,$userId)){
     unset($userId[$uid]);
}
$userId=array_flip($userId);
sort($userId);
$price="price";//member_profit金额字段
Member::whereIn("id",$userId)
       ->whereHas("getMemberProfit",function ($query){
                $query->where("type","!=",0);
            })
            ->select([
                "*",
            DB::raw("(select sum($price) from member_profit where member_profit.member_id = member.id) as price_all")
        ])
            ->orderBy("price_all","desc")
            ->orderBy("created_at","desc")
            ->paginate(20);
3年前 评论
小猪蹄子 (作者) 3年前
小猪蹄子 (作者) 3年前
yanglp (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!