关联统计的时候,构建的sql语句别名错误

浏览:620 发布日期:2019/08/17
5.0.0 - 致命 - 未处理
当使用withCount 作为关联统计的时候,获取的表前缀是真实的数据表名,而不是模型名(model名跟数据库表不一样),导致sql执行失败$orders = Order::field('u_id,addtime')
            ->withJoin([
                'user' => ['nc'=>'user_name']
            ], 'LEFT')
            ->withCount(['orderList'=>'product_count'],'id')
            ->where('h_id', $id)
            ->find();
生成的sql语句SELECT 
  `order`.`u_id`,
  `order`.`addtime`,
  `nc` AS `user_name`,
  (SELECT 
    COUNT(*) AS tp_count 
  FROM
    `oders_lists` `count_table` 
  WHERE (
      `count_table`.`od_nums` = orders.od_nums
    )) AS `product_count` 
FROM
  `orders` `order` 
  LEFT JOIN `users` `user` 
    ON `order`.`u_id` = `user`.`id` 
WHERE `h_id` = 48 
LIMIT 1 
下面是order ,上面是orders

源码部分 return $this->query->alias($aggregate . '_table')
            ->whereExp($aggregate . '_table.' . $this->foreignKey, '=' . $this->parent->getTable() . '.' . $this->localKey)
            ->fetchSql()
            ->$aggregate($field);
评论(
后面还有条评论,点击查看>>