如何在 zend frame work2 中用左连接编写计数查询?
how to write count query with left join in zend frame work2?
大家好,我是 Zend Framework 的新手。在正常情况下 php 我知道如何编写查询。但在 Zend Framework 中,这是完全不同的。
我用左连接编写了查询,它工作正常,但问题是我想计算连接的 table 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')
);
}
);
虽然 运行 这是我得到的,你能解释一下如何得到计数吗?
嗨,这是我得到的正确查询。
`
$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');
});`
大家好,我是 Zend Framework 的新手。在正常情况下 php 我知道如何编写查询。但在 Zend Framework 中,这是完全不同的。
我用左连接编写了查询,它工作正常,但问题是我想计算连接的 table 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')
);
}
);
虽然 运行 这是我得到的,你能解释一下如何得到计数吗?
嗨,这是我得到的正确查询。
`
$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');
});`