一对多
a表
id status
1 1
b表
id income aid
1 1000 1
2 2000 1
3 3000 1
若b表有数据查询 a表展示出 b表income和
$demo= a::find() ->alias('a') ->select(['a.*','sum(b.income) as incomes']) ->joinWith(['b as b'=>function($query){ $query->where(['b.status'=>0]); }],false)//关闭副表数据 ->where(['m.status'=>1]) ->groupBy('a.id')//主要使用groupBy 按a.id表分组后 统计b.income数据
->asarray() ->All();
得:$demo=['id'=>1,'status'=>1,'incomes'=>3000];