我有一张桌子:
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(); ```
编辑:我删除SetMaxResult
使用GroupBy,orderBy:
$qb = $this->createQueryBuilder('f')
->leftJoin('f.user', 'u')
->groupBy('u.name')
->orderBy('f.date', 'DESC');
我还没有测试,但是应该可以。