Ric*_*nop 4 php mysql union select zend-framework
我很确定这在Zend Framework中是不可能的(我已经搜索过Web,文档和问题跟踪器),但我只是想确定一下,我在这里问.
$select = $this->select();
$select->union($select1, $select2);
Run Code Online (Sandbox Code Playgroud)
那当然不行.解释我需要什么.我需要使用UNION()在SELECT查询中合并2个表,我知道我可以这样做:
$select = "$select1 UNION $select2";
Run Code Online (Sandbox Code Playgroud)
问题是会返回一个字符串,我需要一个select对象,所以我可以使用它与Zend_Paginator.
我已经通过修改我的数据库架构解决了这个问题,但我只是好奇是否有一些解决方法.
Jus*_*tin 13
以下是我为建立联盟所做的工作:
$select = $this->select();
//common select from both sides of the union goes here
$select1 = clone($select);
//select1 specifics here
$select2 = clone($select);
//select 2 specifics here
$db = $this->getAdapter();
$pageselect = $db->select()->union(array("($select1)", "($select2)"));
Run Code Online (Sandbox Code Playgroud)
记住Db_Select的__toString会打印出由该选择生成的SQL,帮你调试.
Zend_Db_Select 有一个union方法,所以我认为如果你可以使用select对象构建你的查询是可能的.我没有使用Zend_Db_Select(或表子类)和union,但我想你可以做类似的事情
$select = $this->select()
->where('blah')
->union($sql);
Run Code Online (Sandbox Code Playgroud)