How execute query with subqueries in zend framewor

2019-02-28 10:37发布

问题:

Hi I need write this sql with Zend_Db_Select, but I dont know how I can write subqueries. I would appreciate any help. Thanks.

SELECT * FROM advert WHERE categoryId
           IN (
             SELECT id
              FROM `tree`
              WHERE `lft` BETWEEN 
               (SELECT lft FROM tree WHERE id = '2') AND 
               (SELECT rgt FROM tree WHERE id = '2'))

回答1:

// create the main query
$select = new Zend_Db_Select();

//create the subquery
$subSelect = new Zend_Db_Select();

// using the subquery in main query
$select->where('table.field IN(?)', $subSelect->assemble());


回答2:

Maybe this answer will help you decide between using standard sql queries and zf-made ones.

I myself don't recommend using Zend_Db_Select for complex and scarcely used queries.