在Doctrine 2中如何使用QueryBuilder在SELECT子查询中创建LEFT JOIN? [英] How to create LEFT JOIN with SELECT subquery using QueryBuilder in Doctrine 2?

查看:801
本文介绍了在Doctrine 2中如何使用QueryBuilder在SELECT子查询中创建LEFT JOIN?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要限制LEFT JOIN结果,所以我必须使用子查询。
有人可以给我建议,如何用Doctrine 2来做?

I need to limit LEFT JOIN results, so I must use subquery. Could somebody give me advice how can I do it with Doctrine 2?

我现在是:

  $qb = $this->_em->createQueryBuilder();
    return $qb->add('select', 'c,j')
             ->add('from', 'JobeetBundle:Category c')
             ->leftJoin('c.jobs', 'j', 'WITH', 'j.category = c')
             ->add('where', 'j.expiresAt > ?1')
             ->add('orderBy','j.expiresAt DESC')
             ->setParameter(1, new \DateTime())
             ->getQuery()
             ->getResult();

但我必须更改它,以将作业结果限制为每个类别10。

but I must change it to limit jobs results to 10 by every category.

推荐答案

不幸的是,这是不可能的。在这里:

Unfortunately, This is not possible. Per here:

https://groups.google.com/forum/#!topic/doctrine-user/0rNbXlD0E_8

您可以使用IN在此处执行此操作:

You can do it using IN here:

在Doctrine 2中执行WHERE .. IN子查询

这篇关于在Doctrine 2中如何使用QueryBuilder在SELECT子查询中创建LEFT JOIN?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆