我有两个问题:
$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是在获取时导致此错误的那个。
答案 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 .')' ) );