为了使用querybuilder执行以下postgresql查询,我要进行子选择:

SELECT i.* FROM internship i
WHERE EXISTS (SELECT iw.*
              FROM internship_weeks iw
              WHERE i.id = iw.internship)

有人知道如何使用queryBuilder获得相同的结果吗?或者用DQL?
谢谢你的帮助!

最佳答案

例如,只演示如何在SELECT语句中使用子查询SELECT语句,假设我们可以找到所有尚未编译地址的用户(地址表中没有记录):

 // 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 - 如何正确使用querybuilder以便进行子选择?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42648586/

10-11 09:21