[英]Doctrine “notIN” query builder
我正在尝试构建此数据查询
select *
from user
where user.id not in (
select user.id
from user
inner join repo_user
on user.id = repo_user.userId
where repo_user.repoId = $id
)
我的尝试
class UserRepository extends EntityRepository
{
public function excludeUser($id)
{
$q1 = $this->createQueryBuilder('u')
->select('u.id')
->innerJoin('SvnAdminBundle:RepoUser', 'ru', 'WITH', "ru.userid = u.id")
->where("ru.repoid = $id")
->getQuery()
->getResult();
$qb = $this->createQueryBuilder('r');
$result = $qb->where($qb->expr()->notIn('r.id', $q1))
->getQuery()
->getResult();
return $result;
}
}
我收到错误消息
注意:数组到字符串的转换
您应该给一个字符串作为notIn的第二个参数,现在您要传递的结果是一个数组,不要在第一个查询中获取结果。 采用
$q1 = $this->createQueryBuilder('u')
->select('u.id')
->innerJoin('SvnAdminBundle:RepoUser', 'ru', 'WITH', "ru.userid = u.id")
->where("ru.repoid = $id")
->getDQL();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.