Подзапрос Doctrine 2

Я хочу реализовать подзапрос с помощью построителя запросов, но я не понимаю синтаксиса. Я имею дело с таблицей местоположений, в которой есть записи, которые могут быть городами, штатами или почтовыми индексами в зависимости от установленного типа местоположения. Я хочу получить все локации, которые находятся в определенном состоянии, и убрать все локации городского типа с населением ниже определенного количества.

$qb->select('l')
->from('Entity\Location', 'l')
->where('l.state = :state')
->setParameter('state', 'UT')
->andWhere('...don't know what to put here');

В andWhere мне в основном нужно указать

, а где id отсутствует (выберите id из местоположения, где location_type = 1 и население <1000)

Обновление : я смог сделать это с прямым DQL, но было бы неплохо увидеть, как это сделать с помощью построителя запросов.

$qb->andWhere('l.id NOT IN (SELECT l2.id FROM Entity\Location AS l2 WHERE l2.location_type = 1 AND l2.population < 1000)');
8
задан Jeremy Hicks 10 May 2011 в 14:29
поделиться