在每组理论中选择一行

问题描述 投票:1回答:1

我有一张桌子:

 id | user | date
 ---+----------+------
 1 | name1 | 01-02-2020
 2 | name3 | 02-04-2020
 3 | name2 | 01-02-2020
 4 | name3 | 04-05-2020
 5 | name2 | 04-02-2020

我想按名称对结果进行分组,并且仅获得一行(最新的日期)

例外输出:

id | name | date
 ---+----------+------
 1 | name1 | 01-02-2020
 5 | name2 | 04-02-2020
 4 | name3 | 04-05-2020

到目前为止我做了什么:

        ->select('f')
        ->from('table', 'f')
        ->from('User', 'u')
        ->where('u.id = f.user')
        ->orderBy('f.date', 'DESC')
        ->getQuery(); ```
php symfony doctrine
1个回答
0
投票

编辑:我删除SetMaxResult

使用GroupBy,orderBy:

$qb = $this->createQueryBuilder('f')
->leftJoin('f.user', 'u')
->groupBy('u.name')
->orderBy('f.date', 'DESC');

我还没有测试,但是应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.