Zend framework2 带联合收割机的ZF2结果集
我很难从“组合”对象中获得结果,因为它不再是“选择”对象 我需要Zend framework2 带联合收割机的ZF2结果集,zend-framework2,Zend Framework2,我很难从“组合”对象中获得结果,因为它不再是“选择”对象 我需要UNION4个Select对象,这只适用于Zend Framework的Combine类,因为Select类的Combine()方法只支持合并两个Select对象 我可以获取sql字符串,然后获取结果集,但当我需要再次将其转换回字符串以获取结果时,我构建zf2样式的sql是为了什么 我还想把所有这些联合选择放在一个选择中,就像 (new Sql($adapter))->select()->from(['x' =>
UNION
4个Select对象,这只适用于Zend Framework
的Combine类,因为Select类的Combine()
方法只支持合并两个Select对象
我可以获取sql字符串,然后获取结果集,但当我需要再次将其转换回字符串以获取结果时,我构建zf2样式的sql是为了什么
我还想把所有这些联合选择放在一个选择中,就像
(new Sql($adapter))->select()->from(['x' => $combinedSelects]);
但是它说
“Zend\Db\Sql\Combine类的对象无法转换为字符串”
有什么想法吗
编辑:
为了更好地理解我遇到的问题:
$select = $this->tableGateway->getSql()->select();
$select1 = ...
$select2 = ...
$select3 = ...
$combine = new Combine([
$select1,
$select2,
$select3
]);
$combinedSelects = $combine->union($select)
这就是我的问题开始的地方:
现在我提出:
$sql = $combinedSelects->getSqlString($platform);
获取sql字符串,然后将其放入新变量,如:
$sql = "SELECT * FROM ( $sql ) AS x";
但我希望像上面提到的那样:
$sql = (new Sql($adapter))->select()->from(['x' => $combinedSelects]);
以便我可以使用:
$resultSet = $this->tableGateway->selectWith($sql);
而不是:
$resultSet = $adapter->query($sql, []);
希望这有助于进一步确定我的问题为什么不使用
join
?我认为你的问题可以通过加入和合并来解决。嗨,谢谢你的回答,我认为加入并不是一个真正的选择,我编辑了我的帖子,以便你能更多地了解我真正的问题是什么