This is how I would try it: /** @var Doctrine\ORM\EntityManager $em */ $expr = $em->getExpressionBuilder(); $em->createQueryBuilder() ->select(array(‘DISTINCT i.id’, ‘i.name’, ‘o.name’)) ->from(‘Item’, ‘i’) ->join(‘i.order’, ‘o’) ->where( $expr->in( ‘o.id’, $em->createQueryBuilder() ->select(‘o2.id’) ->from(‘Order’, ‘o2’) ->join(‘Item’, ‘i2’, \Doctrine\ORM\Query\Expr\Join::WITH, $expr->andX( $expr->eq(‘i2.order’, ‘o2’), $expr->eq(‘i2.id’, ‘?1’) ) ) ->getDQL() ) ) ->andWhere($expr->neq(‘i.id’, ‘?2’)) ->orderBy(‘o.orderdate’, ‘DESC’) ->setParameter(1, 5) ->setParameter(2, 5) ; I didn’t … Read more