Как использовать адаптер нескольких баз данных для запроса таблиц из разных баз данных? - PullRequest
0 голосов
/ 23 апреля 2010

У меня есть 2 базы данных, которые настроены как указано здесь . Как я могу написать запрос SQL, который включает в себя database_1.table_1 и database_2.table_1?

например. рассмотрим этот запрос

$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";

Как этот запрос может быть написан с использованием адаптера нескольких дБ?

Редактировать : Я подумал об использовании 2 адаптеров базы данных, потому что таким образом я могу изменить реальные имена баз данных в application.ini. Есть ли другой способ изменить имена баз данных без изменения запросов SQL?

Решение Я использую : я использовал другую переменную конфигурации для чтения второго имени базы данных. Первое имя базы данных берется из настроек адаптера.

1 Ответ

1 голос
/ 23 апреля 2010

Вы не можете, если не используете что-то вроде Федеративные базы данных , но даже тогда вы будете использовать один адаптер базы данных для запроса и позволять базе данных обрабатывать выборку из других федеративных баз данных.

Zend_Application_Resource_Multidb - это просто настройка нескольких адаптеров базы данных одновременно. Ничего более. Вы будете использовать каждый адаптер отдельно от другого. Используйте Adapter1 для запроса базы данных1 и используйте адаптер для запроса базы данных2. Два запроса. Объедините результаты в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...