2015-10-20 52 views
1

我在我們的項目中使用了兩個mysql數據庫。一個數據庫連接了基本的用戶信息和另一個用於存儲日常活動的數據庫。現在需要組合兩個數據庫表。加入兩個數據庫表zend框架1.12

以用戶信息獲取用戶日常活動,然後需要加入主數據庫。

我在PHP中找到了解決方案。但我想在Zend Framework 1.12上的解決方案?

我使用multidb功能來獲取不同的動作。

resources.multidb.tb.adapter = "pdo_mysql" 
    resources.multidb.tb.host = "localhost" 
    resources.multidb.tb.username = "root" 
    resources.multidb.tb.password = "" 
    resources.multidb.tb.dbname = "@@@@@" 
    resources.multidb.tb.default = true 

    resources.multidb.pl.adapter = "pdo_mysql" 
    resources.multidb.pl.host = "localhost" 
    resources.multidb.pl.username = "root" 
    resources.multidb.pl.password = "" 
    resources.multidb.pl.dbname = "#######" 

但我想在不同的數據庫中查詢連接2表。

例如

SELECT db1.table1.somefield,db2.table1.somefield FROM db1.table1 INNER JOIN db2.table1 ON db1.table1.someid = db2.table1.someid WHERE DB1 .table1.somefield ='queryCrit';

回答

0

銘記Zend's Join Inner declaration

public function joinInner($name, $cond, $cols = self::SQL_WILDCARD, $schema = null) 

而且是 '$這個',例如,Zend_Db_Table_Abstract實現與適配器設置爲DB1(用_setAdapter())和架構爲「@@@@ @「(這不是真的必要,因爲它會將它用作默認值):

$select = $this->select(true)->setIntegrityCheck(false) 
       ->from(array('t1'=>'table1'),array('somefield') 
       ->joinInner(array('t1b'=>'table1'), 
          't1.someid = t1b.someid', 
          array('t1b.somefield'), 
          '######') 
       ->where('t1.somefield = ?', $queryCrit); 

請注意Inner Join方法的第四個參數。

希望這會有所幫助。

+0

感謝Saso222.Its工作正常。 –

+0

請問您是否接受正確的答案以便其他用戶知道?謝謝。 –