如何在zf2中使用tablegateway执行联合查询?

时间:2014-07-07 04:50:21

标签: postgresql zend-framework2 union

如何执行以下查询

select * from table1 union select * from table2

在zend-framework 2中我使用的是tablegateway?在zf2的文档中,他们没有提供有关联合查询的任何细节。

1 个答案:

答案 0 :(得分:1)

尝试 -

$select1 = new Select('table1');
[.... rest of the code ....]


$select2 = new Select('table2');
[.... rest of the code ....]

$select1->combine($select2); //This will create the required SQL union statement.

要获得两个表的计数,你必须使用一点SQL而不是tableGateway -

$sql = new Sql($this->tableGateway->adapter);
$select_string = $sql->getSqlStringForSqlObject($select1);

$sql_string = 'SELECT * FROM (' . $select_string . ') AS select_union';
$statement = $this->tableGateway->adapter->createStatement($sql_string);
$resultSet = $statement->execute();
$total_records = count($resultSet);

$resultSet提供数据。

$total_records给出总数。记录。