I'm trying to "translate" query from this thread to query builder in Sonata Admin.
I figured something like this:
$e = $qb->expr();
$a = $qb->getRootAlias();
$qb->select("{$a}.id");
$qb->addSelect("COUNT(t2.id) as countKorekty");
$qb->addSelect("{$a}.created");
$qb->leftJoin("EsurfSedinMainBundle:Deklaracja", 't2', "t2.deklaracja = {$a}.id");
$qb->groupBy("{$a}.id");
But when check profiler, it returns:
SELECT
d0_.id AS id0,
COUNT(d1_.id) AS sclr1,
d0_.created AS created2
FROM
Deklaracja d0_
LEFT JOIN Deklaracja d1_ ON (d0_.created >= ? AND d0_.id = d0_.deklaracja_id)
AND d1_.discr IN ('deklaracja', 'korekta')
WHERE d0_.discr IN ('deklaracja', 'korekta')
GROUP BY d0_.id
It's like a query builder changed my second alias "t2" in inner join to root alias {$a}. In that case my query is working incorrectly.