Search code examples
zend-frameworkzend-db-select

change a complicated query to Zend_Db_Select object


I have a query which is a little complicated:

(SELECT category_id AS id, content_title AS title, content AS detail, 'content' AS type
 FROM category_content
 WHERE $where
 ORDER BY id DESC)
UNION
(SELECT news_id AS id, news_title AS title, news_detail AS detail, 'news' AS type
 FROM news
 WHERE $where
 ORDER BY id DESC)

How can i change this query to Zend_Db_Select object?


Solution

  • To build a UNION query with Zend_Db_Select, first build each subquery as individual Zend_Db_Select objects, and then union() them together:

    $catSelect = $db->select()-> ... ;
    $newsSelect = $db->select()-> ... ;
    
    $unionSelect = $db->select()->union($catSelect, $newsSelect);