如何正确使用查询构建器来进行子选择?
How to correctly use the querybuilder in order to do a subselect?
我想做一个子选择,以便使用查询生成器执行以下 postgresql 查询:
SELECT i.* FROM internship i
WHERE EXISTS (SELECT iw.*
FROM internship_weeks iw
WHERE i.id = iw.internship)
有没有人知道如何使用 queryBuilder 获得相同的结果?或者也许与 DQL?
感谢您的帮助!
作为示例,仅用于演示如何在 select 语句中使用子查询 select 语句,假设我们要查找所有尚未编译地址的用户(不存在记录)在地址 table):
// get an ExpressionBuilder instance, so that you
$expr = $this->_em->getExpressionBuilder();
// create a subquery
$sub = $this->_em->createQueryBuilder()
->select('iw')
->from(IntershipWeek::class, 'iw')
->where('i.id = iw.intership');
$qb = $this->_em->createQueryBuilder()
->select('i')
->from(Intership::class, 'u')
->where($expr->exists($sub->getDQL()));
return $qb->getQuery()->getResult();
希望对您有所帮助
我想做一个子选择,以便使用查询生成器执行以下 postgresql 查询:
SELECT i.* FROM internship i
WHERE EXISTS (SELECT iw.*
FROM internship_weeks iw
WHERE i.id = iw.internship)
有没有人知道如何使用 queryBuilder 获得相同的结果?或者也许与 DQL?
感谢您的帮助!
作为示例,仅用于演示如何在 select 语句中使用子查询 select 语句,假设我们要查找所有尚未编译地址的用户(不存在记录)在地址 table):
// get an ExpressionBuilder instance, so that you
$expr = $this->_em->getExpressionBuilder();
// create a subquery
$sub = $this->_em->createQueryBuilder()
->select('iw')
->from(IntershipWeek::class, 'iw')
->where('i.id = iw.intership');
$qb = $this->_em->createQueryBuilder()
->select('i')
->from(Intership::class, 'u')
->where($expr->exists($sub->getDQL()));
return $qb->getQuery()->getResult();
希望对您有所帮助