Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql ZEND FW:连接来自不同数据库的两个表_Mysql_Zend Framework_Join_Zend Db - Fatal编程技术网

Mysql ZEND FW:连接来自不同数据库的两个表

Mysql ZEND FW:连接来自不同数据库的两个表,mysql,zend-framework,join,zend-db,Mysql,Zend Framework,Join,Zend Db,我想在同一台服务器上的不同数据库中联接两个表。 有人能告诉我如何在Zend Framework Db adapter中做到这一点吗?请参阅: 见: 如果数据库位于同一台服务器上,并且您的用户可以访问这两个数据库,则可以使用完整路径-选择数据库名称。表名称。列名称 否则,你就没有机会加入他们了,因为这个原则。连接由SQL server完成-需要登录到其他数据库 在Oracle上有一个名为DBLink的功能。。。它提供了从不同服务器链接其他表/视图的功能。我不确定MySQL 要使用不同的适配器进行查

我想在同一台服务器上的不同数据库中联接两个表。 有人能告诉我如何在Zend Framework Db adapter中做到这一点吗?

请参阅:

见:


如果数据库位于同一台服务器上,并且您的用户可以访问这两个数据库,则可以使用完整路径-选择数据库名称。表名称。列名称

否则,你就没有机会加入他们了,因为这个原则。连接由SQL server完成-需要登录到其他数据库

在Oracle上有一个名为DBLink的功能。。。它提供了从不同服务器链接其他表/视图的功能。我不确定MySQL

要使用不同的适配器进行查询,可以使用:

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

但再一次,你们在这两个方面的结合仍然是有限的。。。您不能这样做,因为数据库工作的本质是这样的

如果数据库位于同一台服务器上,并且您的用户可以访问这两台服务器,您可以使用完整路径-选择数据库名称。表名称。列名称

否则,你就没有机会加入他们了,因为这个原则。连接由SQL server完成-需要登录到其他数据库

在Oracle上有一个名为DBLink的功能。。。它提供了从不同服务器链接其他表/视图的功能。我不确定MySQL

要使用不同的适配器进行查询,可以使用:

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

但再一次,你们在这两个方面的结合仍然是有限的。。。您不能这样做,因为数据库工作的本质是

在连接来自不同数据库的两个表之前,从dbAdapter构建tableGateway

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;

在连接来自不同数据库的两个表之前,从dbAdapter构建tableGateway

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;

您好,谢谢您的回复…但是我已经连接到两个数据库,并且可以在两个数据库之间切换…但是我不知道如何控制两个数据库中两个表的连接的sql。请告诉我…谢谢。嗨,谢谢你的回复…但是我已经连接到两个数据库,并且可以在两个数据库之间切换…但是我不知道如何控制两个数据库中两个表的连接的sql。plz建议我..谢谢.thx的回复..但问题是如何处理zend..我为每个连接使用hv适配器,并且本质上我使用一个适配器应用查询..因此我在单独的适配器中使用其他db。。。你能给我举个例子吗?编辑了答案。不确定这是否是您要寻找的。thx用于回复..但问题是hw与zend有关..我为每个连接使用hv适配器,并且本质上我使用一个适配器应用查询..所以hw我在单独的适配器中使用其他db。。。你能给我举个例子吗?编辑了答案。我不确定这是否是你想要的。