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

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

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

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

4年前 评论

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

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

后面你又在关联的表member_profit

where("member_profit.member_id",$uid)

搞不懂你的想法

4年前 评论

你说的问题可以,这个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);
4年前 评论
小猪蹄子 (作者) 4年前
小猪蹄子 (作者) 4年前
yanglp (楼主) 4年前

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