2012-04-16 2 views
0

Я хочу выполнить ниже запрос в zend framework. может ли кто-нибудь сказать мне, как я могу это сделать?выполнить запрос в zend framework

(SELECT `msg`.`message_sender_id`, `msg`.`message_receiver_id`, `msg`.`message_content`, `msg`.`message_sent_on`, `usr`.`user_name` AS `sender_name` 
FROM `sc_message` AS `msg` INNER JOIN `sc_user` AS `usr` ON `msg`.`message_sender_id` = `usr`.`user_id` 
WHERE `msg`.`message_id` = 3 ORDER BY `msg`.`message_sent_on`) 

UNION 

(SELECT `msg_slv`.`message_slave_sender_id`, `msg_slv`.`message_slave_receiver_id`, `msg_slv`.`message_slave_content`, `msg_slv`.`message_slave_sent_on`, `usr`.`user_name` AS `sender_name` 
FROM `sc_message_slave` AS `msg_slv` INNER JOIN `sc_user` AS `usr` ON `msg_slv`.`message_slave_sender_id` = `usr`.`user_id` 
WHERE `msg_slv`.`message_id` = 3 ORDER BY `msg_slv`.`message_slave_sent_on`) 

Я написал ниже код

$Query_1 = $this ->select() 
        ->from(array('msg' => 'sc_message'), array('msg.message_sender_id', 'msg.message_receiver_id', 'msg.message_content', 'msg.message_sent_on')) 
        ->joinInner(array('usr' => 'sc_user'), 'msg.message_sender_id = usr.user_id', array('usr.user_name as sender_name')) 
        ->where('msg.message_id = ?',$message_id) 
        ->setIntegrityCheck(false); 

    $this->_name = "sc_message_slave"; 
    $this->_primary = "message_slave_id"; 
    $Query_2 = $this ->select() 
        ->from(array('msg_slv' => 'sc_message_slave'), array('msg_slv.message_slave_sender_id', 'msg_slv.message_slave_receiver_id','msg_slv.message_slave_content', 'msg_slv.message_slave_sent_on')) 
        ->joinInner(array('usr' => 'sc_user'), 'msg_slv.message_slave_sender_id = usr.user_id', array('usr.user_name as sender_name')) 
        ->where('msg_slv.message_id = ?',$message_id) 
        ->setIntegrityCheck(false); 
+0

возможно дубликат: http://stackoverflow.com/questions/ 6161370/raw-sql-query-with-zend-framework – Gavriel

+0

@Garviel: нет, это не так. Я знаю, как выполнять простые запросы в zend. Только проблема связана с ключевым словом UNION. Даже если я выполняю простой запрос UNION, он не выполняется. –

+0

@Pushpendra: да, приятель, я работаю над этим. –

ответ

0

Предполагая, что вы будете работать с какой-то Zend_Db_Table методом

//your code... 

$unionSelect = $this->getAdapter()->select()->union(array($Query_1, $Query_2)); 
//no you can execute it 
$rows = $this->getAdapter()->fetchAll($unionSelect); 
Смежные вопросы