2012-04-16 91 views
1
Table : sc_message 
    ______________________________________________________________________ 
|message_id | message_sender_id | message_receiver_id | message_content| 
------------------------------------------------------------------------ 

Table : sc_user 
    _____________________ 
| user_id | user_name | 
----------------------- 

Table : sc_message_slave 

| message_slave_id | message_slave_sender_id | message_slave_receiver_id | message_slave_content | 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')) 
        ->join(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); 


$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')) 
        ->join(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);    
$select = $this ->select() 
        ->union(array($Query_1, $Query_2)) 
        ->order('msg.message_sent_on') 
        ->setIntegrityCheck(false); 

它給我的警告這樣和停止執行有..與Zend框架聯合SQL查詢

Warning: Invalid use of table with UNION in E:\wamp\www\social_site\library\Zend\Db\Select.php on line 1222 

可以請你告訴我什麼是錯的查詢?

+0

試着做Zend_Debug :: dump($ select - > __ toString());獲取查詢。將更容易調試。 – crazyphoton 2012-04-16 08:49:43

回答

1

既然你的,你做工會的訂單,你可能碰到了這個問題:

http://framework.zend.com/issues/browse/ZF-4338

他們不會解決這個問題,你可以,爲什麼閱讀,但有人發佈了一項工作。

$select_1 = $db->select()->...; 
$select_2 = $db->select()->...; 

$main_select = $db->select()->union(array( '('.$select_1.')', '('.$select_2.')'));