加入两个数据库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方法的第四个参数。
希望对您有所帮助。
我在我们的项目中使用了两个 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方法的第四个参数。
希望对您有所帮助。