如何使用多个数据库适配器来查询涉及不同数据库的表?

时间:2010-04-23 19:03:13

标签: php sql database zend-framework

我有2个数据库,按照here的设置进行设置。如何编写涉及database_1.table_1和database_2.table_1的SQL查询?

E.g。考虑这个查询

$sql = "SELECT distinct database_1.users.id, database_1.users.name
        FROM database_1.users, database_2.sales
        WHERE database_2.sales.user_id = database_1.users.id";

如何使用多个db adapter编写此查询?

编辑:我想过使用2个数据库适配器,因为这样我可以在application.ini中更改实际的数据库名称。有没有其他方法可以在不更改sql查询的情况下更改数据库名称?

解决方案我正在使用:我使用另一个配置变量来读取第二个数据库名称。第一个数据库名称来自适配器设置。

1 个答案:

答案 0 :(得分:1)

除非您使用Federated databases之类的内容,否则不能这样做,但即便如此,您仍然需要使用一个数据库适配器进行查询,并让数据库处理来自联合其他数据库的提取。

Zend_Application_Resource_Multidb只是一次设置多个数据库适配器。而已。您将分别使用每个适配器。使用Adapter1查询database1并使用adapter查询database2。两个问题。合并应用程序内的结果。