Това е една от онези ситуации, при които Doctrine ORM вероятно ще ви причини повече проблеми, отколкото ще реши. Бихте могли:
- Използвайте собствена заявка
и съответния
ResultSetMapping
настройка - Рефакторинг на вашата SQL заявка в нещо, което Doctrine може да обработва в DQL. Разглеждайки заявката, която имате, има няколко различни начина, по които можете да го направите (напр. третиране на подзаявката като временна таблица в частта FROM / JOIN), но не виждам начин, който Doctrine DQL би позволил
- Просто изберете чист SQL, като използвате Doctrine DBAL. Изглежда, че използвате
$this->_em
което ме кара да мисля, че сте вEntityRepository
, така че можете да направите:$this->_em->getConnection()
за да получите DBAL връзка тогава просто направете$conn->query()
. Очевидно по този начин губите предимствата на ORM (агностик на база данни и т.н.), но можете да мислите за ORM като за данък, изпълняващ сложни заявки.
Разбирам, че нито едно от тях не е идеално, но от опит понякога е по-добре да избутате Doctrine ORM от пътя, за да постигнете това, от което се нуждаете.