我已经找到了这个问题:ZEND FW : Joining two tables from different databases。但下面的答案并没有解决这个问题。
我在项目中使用了Zend Framework(1.8.3)。它过去只使用一个数据库。最近数据库发生了变化。现在,当用户打开我的网站时,我应该连接到两个数据库。然后我的代码中有一些左连接操作。类似的代码如下:
...
public static function getAdapter () {
$db = Zend_Db::factory( 'PDO_MYSQL', $GLOBALS['g_config']['db']['params'] );
return $db;
}
---------------------------------------------------------------------------------
private $_db;
...
public function __construct () {
$this->_db = Model_DbTable_Abstract::getAdapter();
}
public function getUnits () {
$objSelect = $this->_db->select();
$objSelect->from( 'table_unit', array('*') );
$objSelect->joinLeft( 'user',
'table_unit.ucid=user.ucid',
array('user_name') );
$objSelect->joinLeft( 'table_position',
'table_unit.position_id=table_position.id',
array('position_name' => 'name') );
$objSelect->where( 'table_unit.status=?', 'SOMETHING' );
$arrRes = $this->_db->fetchAll($objSelect);
return $arrRes;
}
现在表'user'在另一个数据库中。如何进行'joinLeft'操作以获得相同的结果?