我有一个需要用 DQL / Doctrine2 编写的复杂查询。伪查询(我省略了所有额外的连接/计算)是:
SELECT
a, SUM(b)
FROM (
SELECT
a, SUM(b)
FROM tbl
GROUP BY a,c
) calc
GROUP BY a
首先在 a 和 c 列上进行分组,然后在 a 上再次选择分组。
选择部分的(伪)代码在查询构建器中很容易:
$queryBuilder = $this->entityManager->createQueryBuilder();
$queryBuilder
->select(array('tbl'))
->addSelect('SUM(tbl.b)')
->from('\Model\MyModel', 'tbl')
->groupBy('a')
->addGroupBy('c');
$query = $queryBuilder->getQuery();
$results = $query->getResult();
但是,如何再次查询此结果?
这可能吗?
或者我可以以某种方式将它们放在 1 个 queryBuilder 对象中吗?