I want to implement a subquery using the query builder but I'm not understanding the syntax. I'm dealing with a locations table that has entries that can be cities, states or zip codes depending on the location type set. I want to get all locations that are in a certain state and take out any that are city type and have a population below a certain amount.
$qb->select('l')
->from('Entity\Location', 'l')
->where('l.state = :state')
->setParameter('state', 'UT')
->andWhere('...don't know what to put here');
In the andWhere I basically need to say
and where id not in (select id from location where location_type = 1 and population < 1000)
Update: I was able to do this with straight DQL but it would be nice to see how to do it using the query builder.
$qb->andWhere('l.id NOT IN (SELECT l2.id FROM Entity\Location AS l2 WHERE l2.location_type = 1 AND l2.population < 1000)');
In the documentation of Doctrine I found this:
It should be possible to put a subquery in this function. I never used it myself, but according to the documentation it should look like this.
I'm not 100% sure the example above is correct, but give it a try.