0

我有 2 个表:“用户”和“状态”。我假装做的是计算有多少用户来自某个状态,即:

州总用户 圣达菲 5 布宜诺斯艾利斯 20

等等。

我正在使用带有教义的 codeigniter,这是我的代码:

public function countByState(){
    $this->qb = $this->em->createQueryBuilder();

    $this->qb->select('s.state_id', $this->qb->expr()->count('u.state'))
             ->from('models\States', 's')
             ->leftJoin('s.state_id' , 'u')
             ->leftJoin('models\User', 'u')
             ->groupBy('s.state_id');

    $query = $this->qb->getQuery();
    $obj = $query->getResult();

    return $obj;        
}

这就是错误:致命错误:未捕获的异常'Doctrine\ORM\Query\QueryException' 带有消息'[Semantical Error] line 0, col 76 near 'u LEFT JOIN models\User': Error: Class models\States has no第 47 行 C:\Desarrollo\new_frame_doctrine\site\application\libraries\data\Doctrine\ORM\Query\QueryException.php 中名为 state_id' 的关联

4

1 回答 1

0

请使用此 sql 查询

SELECT s.name,count(*) FROM `users` u left join `state` s on u.stateid=s.id 
 group by s.id;

在代码中请相应更改!!

我通过创建两个名为 state (带有 fields id and name)和 users (带有 fields id, name and state_id)的表来尝试这个,它对我来说很好。

干杯!!!

于 2013-09-12T17:29:42.877 回答