gpt4 book ai didi

doctrine - 如何使用 Doctrine (DQL) 限制左连接的结果

转载 作者:行者123 更新时间:2023-12-05 00:24:27 25 4
gpt4 key购买 nike

在 symfony 2 应用程序中,我有 2 个实体由 映射。一对多关系 (用户和集合点)。
我正在尝试搜索我的 用户实体并加入 最后一次约会对于找到的每个用户。
这个想法是这样的:

    $qb = $this->createQueryBuilder('p');

$qb->select('p.id, p.last_name, p.first_name')
->leftJoin('p.rendezvous', 'i')
->select('i.date')
->where('i.user = p.user')
->orderBy('i.date', 'DESC')
->setFirstResult(0)
->setMaxResults(1)
->where('p.user IN ('.$users.')')
->orderBy('p.last_name', 'ASC')
->addOrderBy('p.first_name', 'ASC');

我应该有这样的结果:

1, Ben, Tooch, 2014-10-15 18:45:00
7、约翰斯诺,2014-10-16 17:15:00
...

我尝试使用分页器功能,但没有任何成功。
非常感谢您的帮助。

最佳答案

当我添加更多的列来获取时,我不得不找到另一种方法来做到这一点。我终于得到了一个有效的 DQL 查询:

$qb->select('p.id, p.last_name, p.first_name, r.date, r.othercolumn')
->leftJoin('p.rendezvous', 'r', 'WITH', 'p.id = r.user AND r.date = (SELECT MAX(r2.date) FROM \App\YourBundle\Entity\Rendezvous as r2 WHERE r2.user = p.id)')
->where('p.user IN ('.$users.')')
->orderBy('p.last_name', 'ASC')
->addOrderBy('p.first_name', 'ASC')
->groupBy('p.id');

关于doctrine - 如何使用 Doctrine (DQL) 限制左连接的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26401620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com