用户有一个角色。 角色拥有零个或多个用户。
我想找到没有用户的角色。
我需要查询而不使用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查询之外,我没有其他选择吗?
提前致谢
答案 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();