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