独特和有序的doctrine querybuilder

时间:2017-04-22 17:04:54

标签: php mysql sql symfony doctrine-orm

我有以下需要开始工作的查询:

$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选项的情况下实现这一目标?

0 个答案:

没有答案