2017-02-14 59 views
0

嗨,我是Zend Framework的新手。在正常的PHP我知道如何编写查询。但在Zend框架中,这是完全不同的。如何用zend框架work2中的左连接来编写计数查询?

我写了左连接的查询,它工作正常,但事情是我想获得连接表ID的计数。我会告诉我的控制器代码:

控制器:

$adapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter'); 
$projectTable = new TableGateway('blog', $adapter); 
$rowset = $projectTable->select(
    function(Select $select) {  
     $select->join(
      array('b' => 'blog_answers'), 
      "b.question_id = blog.id", 
      array('new'=>COUNT('b.question_id'),'left') 
     ); 
    } 
); 

同时运行此我得到可以请你澄清这怎么弄计数。

+0

检查[此答案](http://stackoverflow.com/a/13585205/1697459) – Wilt

回答

0

这是我得到的正确查询。

` 
$adapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter'); 
     $projectTable = new TableGateway('blog', $adapter); 
     $rowset = $projectTable->select(function(Select $select) { 
     $select->columns(array(
     '*', 
     'num' => new Expression('COUNT(blog_answers.question_id)') 
    )); 
     $select->join('blog_answers', 'blog.id = blog_answers.question_id', array(), 'left'); 
     $select->group('blog.id');  
      });`