0

我有两个查询:

$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 是导致此错误的原因。

4

1 回答 1

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 .')' ) );
于 2013-05-18T10:41:18.543 回答