<strong id="xrzht"><meter id="xrzht"></meter></strong>

            <label id="xrzht"></label>

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

            浏览:829 发布日期:2019/10/20
            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);
            评论(
            后面还有条评论,点击查看>>