laravelORM 中的 withCount 可以统计相关联数据的总数 ,
LaravelORM 写法:
Orm::withCount(['relation'])->get();
解析成 SQL :
select `a`.*, (select count(*) from `relation` where `a`.`id` = `relation`.`aid`) as `relation_count` from `a`;
当需要统计关联的 某个字段 sum 时,可以这样写:
Orm::withCount(['relation as relation_sum' =>function($query){
$query->select(DB::raw("sum(amount) as relationsum"));
}])
解析成 SQL:
select `a`.*, (select sum(amount) from `relation` where `a`.`id` = `relation`.`aid`) as `relation_sum_count` from `a` ;
其他的 avg , max , min 也可以通过 withCount 实现