How to create LEFT JOIN with SELECT subquery using QueryBuilder in Doctrine 2?

15,577

Unfortunately, This is not possible. Per here:

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

You can do it using IN here:

Doing a WHERE .. IN subquery in Doctrine 2

Share:
15,577
Codium
Author by

Codium

Updated on June 04, 2022

Comments

  • Codium
    Codium about 2 years

    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?

    What I have now is:

      $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();
    

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