5.0.0 - 普通 - 已处理
当模型关联为自关联一对多时,统计数据就出错 public function child()
{
return $this->hasMany(self::class, 'parent_id', 'id')->selfRelation();
}AdminGroupModel::withCount(['child'])->where($where)->order('create_time', 'desc')->select()最终执行的语句是:SELECT *,(SELECT COUNT(*) AS tp_count FROM `ke_admin_group` WHERE ( `parent_id` =ke_admin_group.id ) LIMIT 1) AS `child_count` FROM `ke_admin_group` WHERE ( `parent_id` = 0 ) ORDER BY `create_time` DESC看起来是没什么问题,但是查询的child_count却不准确了正确的语句应该是
SELECT *,(SELECT COUNT(*) AS tp_count FROM `ke_admin_group` AS b WHERE ( `b`.`parent_id` =ke_admin_group.id ) LIMIT 1) AS `child_count` FROM `ke_admin_group` WHERE ( `parent_id` = 0 ) ORDER BY `create_time` DESC子查询要加上一个别名,但是关联模式下不能自己手动加,这是否是一个BUG呢