我很确定这在 Zend Framework 中是不可能的(我已经搜索了网络、文档和问题跟踪器)但我只是想确定一下所以我在这里问。
$select = $this->select();
$select->union($select1, $select2);
那当然行不通。解释我需要什么。我需要使用 UNION() 在 SELECT 查询中合并 2 个表,我知道我可以这样做:
$select = "$select1 UNION $select2";
问题是它会返回一个字符串,我需要得到一个选择对象,这样我才能将它与 Zend_Paginator 一起使用。
我已经通过修改我的数据库架构解决了这个问题,但我只是想知道是否有一些解决方法。
最佳答案
以下是我为建立工会所做的工作:
$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)"));
记住 Db_Select
的 __toString
将打印出该选择生成的 SQL,以帮助您调试。
关于php - Zend Framework 选择对象和 UNION(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1319611/