我有以下需要开始工作的查询:
$repository = $this->getDoctrine()->getRepository('AppBundle:ProjectPhaseUser');
$query = $repository->createQueryBuilder('p')
->select('(p2.project) AS projectId')
->leftJoin('AppBundle:ProjectPhase', 'p2', 'WITH', 'p.projectPhase = p2.id')
->where('p.user = ' . $user->getId())
->orderBy('p.assignDate', 'DESC')
->setMaxResults(3)
->getQuery();
基本上有2个表:ProjectPhaseUser和ProjectPhase ProjectPhaseUser表中的内容是具有项目阶段和assigateate的用户。在ProjectPhase表中,您有他们所属的项目阶段和项目。
我想要的是获得特定用户的3个最后分配的项目。
查询现在做的是获取最后3个项目阶段的项目。然而,这给了我重复的项目,因为项目可以有多个项目阶段。当我在项目上尝试不同的时候,我得到的问题是orderby不在select子句中。我也尝试过groupby,它给了我唯一一个mysql错误的完整组。
如何在不改变mysql only full group by选项的情况下实现这一目标?