2010-01-13 232 views

回答

-1

如果數據庫在同一臺服務器上,並且用戶可以訪問他們兩個,你可以使用完整路徑 - 選擇數據庫名稱.table_name.col_name ...

否則你沒有機會因爲這個原則加入他們。由SQL服務器所做的加盟 - 這將需要登錄到其他數據庫...

在Oracle上有一個名爲DBLINK功能......它提供abbility來自不同服務器的鏈接其他表/視圖。不確定MySQL。

要使用不同的適配器查詢,你可以使用:

$select1 = new Zend_Db_Select($adapter1); 
$select2 = new Zend_Db_Select($adapter2); 

但同樣,你仍然在有限的東西像這兩個工會......你不能這樣做,因爲的本性數據庫是如何工作的

+0

不知道有關完整路徑,但我想它應該工作 –

+0

thx的答覆..但事情是hw與zend做....我hv適配器爲每個連接和性質我hv應用查詢使用一個適配器..所以我使用其他數據庫在一個單獨的適配器... 你能給我一個例子嗎? – sha

+0

編輯答案。不知道這是你在找什麼。 –

0

構建tableGateway從您將對DBAdapter從不同的數據庫連接兩個表之前。

use use Zend\Db\Sql\Select; 
use Zend\Db\Sql\Where; 

$someCondition=new Where(); 
$someCondition->equalTo('columnName',$columnValue); 
//you can build $this->tableGateway from your DB adapter 
$rowset = $this->tableGateway->select(function (Select $select) use ($someCondition) { 
     $table2forInnerJoin = new \Zend\Db\Sql\TableIdentifier('table2Name', 'table2Database'); 
     $select->join(array('table2Name'=>$table2forInnerJoin),"table1Name.id = table2Name.id"); 
     $select->where($someCondition); 
}); 
return $rowset; 
相關問題