Запрос Symfony2, чтобы показать событие, происходящее сегодня, а затем остальные в порядке DESC

Может ли кто-нибудь помочь мне сделать этот запрос доктрины symfony, чтобы вернуть сначала событие, происходящее сегодня, а затем остальные события в порядке DESC?

Вот что у меня сейчас:

public function getCompanyQuery($company, $adId)
    {
        $qb = $this->getEntityManager()->createQueryBuilder()
            ->select('a')->from('AppBundle:ScheduledEvents', 'a')
            ->where('a.company = :company')->setParameter('company', $company);

        if ($adId) {
            $qb->andWhere('a.adid = :ad')->setParameter('ad', $adId);
        }

        return $qb->addOrderBy('a.serverDatetime', 'ASC')->addOrderBy('a.status', 'ASC')->getQuery();
    }

====

Если это поможет, я играл с собственным запросом mysql, который, кажется, делает то, что я хочу:

SELECT * FROM tablename WHERE startDate=CURDATE()
UNION ALL
(SELECT * FROM tablename WHERE startDate <> CURDATE() ORDER BY startDate DESC) 

====

Может ли кто-нибудь помочь мне изменить мой запрос доктрины, чтобы он делал то, что делает этот собственный запрос mysql?

С Уважением


person Valentin-Nicusor Barbu    schedule 26.07.2018    source источник
comment
Привет Валентин, Лучший способ добиться этого - сделать 2 разных запроса и объединить результаты. См. stackoverflow.com/questions/ 32384046/   -  person Weenesta - Mathieu Dormeval    schedule 30.07.2018
comment
И если это порядок, почему бы не вернуть его как: SELECT * FROM tablename WHERE startDate›=CURDATE() ORDER BY startDate DESC Или я что-то упустил, и вы хотите также показать прошлые события? Зачем делать два запроса с уродливым UNION, если можно сделать один?   -  person Martin Fasani    schedule 07.08.2018