加入两个数据库table zend framework 1.12

Join two database table zend framework 1.12

我在我们的项目中使用了两个 mysql 数据库。一个数据库连接基本用户信息,另一个数据库用于存储日常活动。现在需要合并两个数据库表。

每天获取用户 activity 用户信息,然后需要加入 master 数据库。

我在 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 = "#######"

但是我想在不同的数据库中查询 join 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';

谨记Zend's Join Inner declaration:

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

并且作为“$this”,例如,一个 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方法的第四个参数。

希望对您有所帮助。