8
我想使用查詢生成器實現子查詢,但我不理解語法。我正在處理一個位置表,根據位置類型設置,該表格可以是城市,州或郵政編碼。我想要獲得處於特定狀態的所有地點,並取出任何城市類型並且人口數量低於特定數量的地點。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)');
看起來我實際上甚至都不需要子查詢。然而,Guilherme還建議我可以使用第二個查詢構建器實例並將其用作in表達式的第二個參數。 http://groups.google.com/group/doctrine-user/browse_thread/thread/f72c104fe334f87c – 2011-05-10 20:09:28