我正在尝试构建这个数据查询
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
)我参考答案'where not in' query with doctrine query builder
我的努力
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;
}
}我得到了错误信息
注意:数组到字符串的转换
发布于 2015-03-26 04:00:09
您应该提供一个字符串作为notIn的第二个参数,现在您要传递的结果是一个数组,不要用第一个查询来获取结果。使用
$q1 = $this->createQueryBuilder('u')
->select('u.id')
->innerJoin('SvnAdminBundle:RepoUser', 'ru', 'WITH', "ru.userid = u.id")
->where("ru.repoid = $id")
->getDQL();https://stackoverflow.com/questions/29270768
复制相似问题