Я создаю свои подзапросы и выбираю их как новые объекты Zend_Db_Select.Это делает код немного чище, поскольку я потенциально могу повторно использовать этот запрос в другом месте, это также помогает при отладке, поскольку я могу echo (string)$subQuery
просматривать только эту часть SQL.
$subQuery = new Zend_Db_Select();
$subQuery->from(array('price' => 'property_price'))
->where('price_property_id = pu_property_id')
->where('price_value >= ?', $params['price_min'])
->where('price_value <= ?', $params['price_max']);
$select->where('EXISTS('.$subQuery.')');