当我查询用户的详细信息以计算连接到每个用户的设备时,此代码可以正常工作。
$em = $this->getEntityManager();
$query = 'SELECT u.id, u.email, COALESCE(c, 0) devices FROM user u left join (select user_id, count(user_id) c from user_device where permission_level = 3 group by user_id) ud on u.id = ud.user_id';
$statement = $em->getConnection()->prepare($query);
$result = $statement->executeQuery()->fetchAllAssociative();
dd($result);
此查询的输出是
我想知道是否有另一种方法可以使用
达到相同的结果 $qb = $this->createQueryBuilder('u');
我尝试实现它,但它无法读取 COALESCE 功能。
在这种情况下,我有一个表用户
我有表 user_device
用户 | 设备 |
---|---|
1 | 12 |
1 | 13 |
1 | 15 |
1 | 14 |
2 | 12 |
1 | 16 |
推荐使用symfony关系。查看此链接了解详细信息。