如何执行以下查询
select * from table1 union select * from table2
在zend-framework 2中我使用的是tablegateway?在zf2的文档中,他们没有提供有关联合查询的任何细节。
答案 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
给出总数。记录。