5

因为我的联接还包括一个名为“id”的字段,所以我需要在我的 sql 中重命名这个字段名,这样它就不会覆盖我从第一个选定表格中的 id 字段名。

我的查询如下所示;

$select = new \Zend\Db\Sql\Select();
$select->from('websites');
$select->join(array('s' => 'websites_statistics'), 's.website_id = websites.id');
$select->where(array('websites.website' => $website));
$select->order('s.timestamp DESC')->limit(1);

$rowset = $this->tableGateway->selectWith($select);
$row = $rowset->current();

return $row;

所以,'s' 'id' 字段应该重命名为 'stat_id' 之类的东西。

提前致谢!

缺口

4

3 回答 3

10
$select = new \Zend\Db\Sql\Select();
$select->from('websites');
       ->join(array('s' => 'websites_statistics'), 's.website_id = websites.id',
           array('stat_id' => 's.id')); // <-- here is the alias
       ->where(array('websites.website' => $website));
       ->order('s.timestamp DESC')
       ->limit(1);
于 2013-01-07T12:02:34.830 回答
0
    $db = Zend_Db_Table::getDefaultAdapter();
    $select = $db->select();
    $select->from(array('p' => 'sub_categories'), array('subcategory_id'=>'p.subcategory_id','subname'=>'p.name'))
    ->join(array('pa' => 'categories'), 'pa.category_id = p.category_id', array('catname'=>'pa.name'));
    $result = $this->getAdapter()->fetchAll($select);

*

于 2013-10-10T06:24:24.040 回答
0

我们也可以使用这种方法

use Zend\Db\Sql\Expression;

->join(array('s' => 'websites_statistics'), 's.website_id = websites.id',
       array('stat_id' => new Expression('s.id'))); // <-- here is the alias

这是最好的方法如果你必须在 zf2 上使用 Mysql 'AS'

example : array('Month' => new Expression('DATE_FORMAT(`salesInvoiceIssuedDate`, "%m")'))
于 2015-05-11T07:40:05.100 回答