Для этого существует малоизвестный прием, основанный на функции, называемой префиксом таблиц.Вы можете сконфигурировать ваш файл settings.php так, чтобы префикс определенных таблиц в ваших запросах назывался именем другой базы данных, чтобы вы могли выполнять объединения между базами данных.
Посмотрите примеры в комментариях к default.settings.php (аналогичный синтаксис применяется в Drupal 6), чтобы увидеть, как это настроить.В случае исходного вопроса у вас будет запись префикса в вашей записи $ database по умолчанию, которая выглядит следующим образом:
'prefix' => array('page' => 'old_data_source.'),
, а затем создаете запрос с чем-то вроде:
db_query("SELECT * FROM {node} n LEFT JOIN {page} p on n.nid=p.nid");
Уровень абстракции БД Drupal интерпретирует {страницу} и преобразует его в SQL следующим образом:
SELECT * FROM node n LEFT JOIN old_data_source.page p on n.nid=p.nid;
Единственное, что нужно убедиться в том, что пользователь базы данных, связанный с базой данных Drupal по умолчанию, имеет привилегииполучить доступ к обеим базам данных, иначе этот трюк не сработает.