2014-12-24 97 views
0

我不确定为什么Zend难以编写查询。我来自CodeIgniter的背景。Zend框架内部联接查询

我想写这个查询

SELECT tbllicenses.*, tblclients.email As clientemail FROM tbllicenses 
INNER JOIN tblclients ON tblclients.id = tbllicenses.clientid 

你知道我怎么可以这样写查询,而无需使用“表为T”的分配类型?

+0

[在Zend中加入(http://framework.zend.com/manual/1.12/en/zend.db.select.html#zend。 db.select.building.join)。你有什么理由不想使用'table AS t'别名? – Amadan

回答

0

拥有表别名是编写查询的标准方式。所以如果你会去zend连接功能,那么别名是必需的。另一种方法是,您可以将整个查询传递给'$ this-> db-> query(“query ....”)'。

0

一种方式做到这一点可能是:

class Application_Model_Soa_Service_LicenseService extends Zend_Db_Table_Abstract 
{ 

    public function getLicenses() 
    { 
     $statementString = " "; 
     $statementString .= " SELECT "; 
     $statementString .= " tbllicenses.*, "; 
     $statementString .= " tblclients.email As clientemail "; 
     $statementString .= " FROM tbllicenses "; 
     $statementString .= " INNER JOIN tblclients ON tblclients.id = tbllicenses.clientid "; 

     $statementQuery = $this->_db->prepare($statementString); 
     $statementQuery->execute(); 

     $rowsetData = $statementQuery->fetchAll(); 

     return $rowsetData; 
    } 
}