<button id="mYRur"></button><nav id="mYRur"></nav>
    <acronym id="mYRur"></acronym>
    • <textarea id="mYRur"></textarea>

      关联统计的时候,构建的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);
      评论(
      后面还有条评论,点击查看>>