Mysql 使用Zend Framework 2 tableGateway的Sql查询

Mysql 使用Zend Framework 2 tableGateway的Sql查询,mysql,zend-framework,zend-framework2,zend-db,tablegateway,Mysql,Zend Framework,Zend Framework2,Zend Db,Tablegateway,我是Zend Framework 2的新手,目前正在为一个学校项目编写一个论坛。 我有一个无法用Db Sql Select对象和tableGateway管理的查询。我刚刚使用了一个Db适配器,它工作得很好,但我正在寻找一种通过使用Db Sql Select对象来传递查询的方法,因为我以后需要使用分页器 以下是我得到的: public function fetchAll() { $select = $this->adapter->query( 'SELE

我是Zend Framework 2的新手,目前正在为一个学校项目编写一个论坛。 我有一个无法用Db Sql Select对象和tableGateway管理的查询。我刚刚使用了一个Db适配器,它工作得很好,但我正在寻找一种通过使用Db Sql Select对象来传递查询的方法,因为我以后需要使用分页器

以下是我得到的:

public function fetchAll()
 {
    $select = $this->adapter->query(
           'SELECT theme.nom AS nom, theme.idTheme AS idTheme, theme.TidAdmin AS TidAdmin, theme.description AS description, users.username, Dnom, date, admin.pseudo AS apseudo
            FROM theme
            LEFT join (select DidUsers, Dnom, DidTheme, date from discussion group by date ) D ON `DidTheme` = theme.`idTheme` 
            LEFT JOIN users on DidUsers = idUsers
            LEFT JOIN admin on TidAdmin = idAdmin'
            );
    $statement = $select;
    $results = $statement->execute();
    return iterator_to_array($results);
 }
关于如何使用Zend\Db\Sql\Select执行此查询,有什么想法吗? 谢谢大家!

$subquery = new \Zend\Db\Sql\Select ('discussion');
$subquery->group ("date");
$subquery->columns (["DidUsers" , "Dnom", "DidTheme", "date"]);

$query = new \Zend\Db\Sql\Select ('theme');
$query->columns (['nom', 'idTheme', 'TidAdmin', 'description']);
$query->join ($subquery, 'idTheme = DidTheme');
$query->join ('users', 'idUsers = DidUsers', ['username']);
$query->join ('admin', 'idUsers = TidUsers', ['pseudo' => 'apseudo']);