一對多
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];