【问题标题】:Join two database table zend framework 1.12Zend框架1.12加入两个数据库表
【发布时间】:2016-01-18 23:23:55
【问题描述】:

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

使用用户信息获取用户日常活动,然后需要加入主数据库。

我在 PHP 中找到了解决方案。但我想要 zend 框架 1.12 的解决方案?

我使用了用于获取不同操作的多数据库功能。

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';

【问题讨论】:

    标签: mysql database zend-framework


    【解决方案1】:

    记住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 方法的第四个参数。

    希望这会有所帮助。

    【讨论】:

    • 请您接受正确的答案,以便其他用户知道吗?谢谢。
    猜你喜欢
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2015-02-14
    • 1970-01-01
    相关资源
    最近更新 更多