关于一对多自关联的一个问题

浏览:104 发布日期:2019/02/12
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呢
评论(
后面还有条评论,点击查看>>