使用 Symfony 2 和 Doctrine,我正在寻找一种方法来选择在特定列中具有最大值的每一行。
现在,我正在做两个查询:
我相信这可以通过一个查询来完成。
搜索,我在一个线程中找到了这个答案,这似乎是我正在搜索的内容,但是在 SQL 中。
因此,根据答案的第一个解决方案,我尝试构建的查询将是这样的:
select yt.id, yt.rev, yt.contents
from YourTable yt
inner join(
select id, max(rev) rev
from YourTable
group by id
) ss on yt.id = ss.id and yt.rev = ss.rev
Run Code Online (Sandbox Code Playgroud)
有人知道如何在 Doctrine DQL 中制作它吗?
现在,这是我的测试代码(不工作):
$qb2= $this->createQueryBuilder('ms')
->select('ms, MAX(m.periodeComptable) maxPeriode')
->where('ms.affaire = :affaire')
->setParameter('affaire', $affaire);
$qb = $this->createQueryBuilder('m')
->select('m')
//->where('m.periodeComptable = maxPeriode')
// This is what I thought was the most logical way of doing …Run Code Online (Sandbox Code Playgroud)