Detta är en av de situationer där Doctrin ORM sannolikt kommer att orsaka dig fler problem än den löser. Du kan:
- Använd en infödd fråga
och relevant
ResultSetMapping
inställning - Refaktorera din SQL-fråga till något som Doctrine kan hantera i DQL. När du tittar på frågan du har finns det ett antal olika sätt du kan göra det (t.ex. behandla underfrågan som en tillfällig tabell i FROM / JOIN-delen) men jag kan inte se något sätt som Doctrin DQL skulle tillåta
- Gå bara för rak SQL med Doctrine DBAL. Det verkar som att du använder
$this->_em
vilket får mig att tro att du är i ettEntityRepository
, så du kan göra:$this->_em->getConnection()
för att få en DBAL-anslutning gör sedan bara$conn->query()
. Uppenbarligen förlorar du på detta sätt fördelarna med en ORM (databasagnostiker etc.) men du kan tänka på ORM som att de har en skatt som utför komplexa frågor.
Jag förstår att ingen av dessa är idealisk, men av erfarenhet är det ibland bättre att skjuta Doctrin ORM ur vägen för att uppnå det du behöver.