Zend DB Union错误

时间:2013-05-18 06:04:25

标签: mysql database zend-framework

我有两个问题:

$select1 = $this->select()
    ->from(array('o'=>'table1'), array('*', 'o.field2 AS shared'))
    ->where('field4= ?', $input);

$select2 = $this->select()
    ->from(array('i'=>'table2'), array('*', 'ch.field1 AS shared'))
    ->where('ch.field5= ?', $input);

两个查询都能成功运行。但是,即使使用共享参数名称,它也不能与以下联合函数一起使用。怎么样?

//Merge both query
$selectboth = $this->select()
    ->union(array($select1, $select2))
    ->order('shared');

$obj = $this->dbo->fetchRow($selectboth);

我怀疑我的fetchRow是在获取时导致此错误的那个。

1 个答案:

答案 0 :(得分:0)

如果你在两个sql中都有相同的列数,那么你可能会遇到这个问题:

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

例如:

$select_q1 = $db->select()->...;
$select_q2 = $db->select()->...;

$main_select = $db->select()->union( array(  '('.$select_q1 .')',  '('.$select_q2 .')' ) );