Doctrine2得到没有关系的对象

时间:2015-04-28 14:00:59

标签: php symfony doctrine-orm

用户有一个角色。 角色拥有零个或多个用户。

我想找到没有用户的角色。

我需要查询而不使用IN或NOT IN

我试过加入:

in.readParcelable

不加入

$qb = $this->createQueryBuilder('role');
$qb
    ->leftJoin('role.users', 'users')
    ->where('users IS NULL')

id:

$qb = $this->createQueryBuilder('role');
$qb
    ->where('role.users IS NULL')

你有其他想法吗?除了使用IN / NOT IN查询之外,我没有其他选择吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以使用计数查询找到没有任何用户的角色

$qb = $this->createQueryBuilder('role');
$qb ->addSelect('COUNT(users.id) AS total_users')
    ->leftJoin('role.users', 'users')
    ->groupBy('role.id')
    ->having('total_users = 0')
    ->getQuery()->getResult();