我有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]第0行,第76行'u LEFT JOIN models \ User':错误:类模型\ States在C中没有名为state_id'的关联第47行:\ Desarrollo \ new_frame_doctrine \ site \ application \ libraries \ data \ Doctrine \ ORM \ Query \ QueryException.php
答案 0 :(得分:0)
请使用此SQL查询
SELECT s.name,count(*) FROM `users` u left join `state` s on u.stateid=s.id
group by s.id;
在代码中请相应更改!!
我通过创建两个名为state的表(包含字段id and name
)来尝试此操作
和用户(使用字段id, name and state_id
),它对我来说很好。
干杯!!!