У меня есть большой жир QueryBuilder, который генерирует sql, как в this question. По-видимому, все те, кто оставил меня, заставляют мой запрос сканировать.Doctrine2: как удалить leftJoin часть QueryBuilder
Так я полагал, что нужно получить только идентификаторы, которые соответствуют его, а затем добавьте
$ids = $cloneOfqb->select("o.id")->resetDqlPart("join")....->getResult() ;
return $qb->andWhere("o.id IN (:ids)")->setParameter("ids", $ids)
Проблема:
Это будет работать хорошо, но resetDqlPart("join")
удаляет все соединения, как leftJoin
и innerJoin
. Я много использую innerJoins, так как он читает код. Есть ли способ сбросить только leftJoins, но оставить innerJoins? Он не должен быть объектом QueryBuilder, он может быть дочерним, например Doctrine\ORM\Query
.