ZF2如何用连接重命名字段名称

时间:2013-01-07 11:51:01

标签: mysql join zend-framework2

因为我的连接也包含一个名为'id'的字段,所以我需要在我的sql期间重命名这个字段名,这样它就不会覆盖我从第一个选中的tabel中的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'。

提前致谢!

尼克

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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);

*

答案 2 :(得分: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

这是最好的方法如果你必须使用Mysql&#39; AS&#39;在zf2上

example : array('Month' => new Expression('DATE_FORMAT(`salesInvoiceIssuedDate`, "%m")'))