Как создать кросс-запрос базы данных в MySQL?

У меня есть две базы данных на одном сервере. Google дал мне несколько намеков, но не было ничего "официального", которого я мог найти. Может ли кто-нибудь указать мне на документацию, которая объясняет, как это сделать? Объяснение с использованием PHP также было бы полезно. Спасибо!

Ответ 1

У меня есть две базы данных на одном сервере.... Как построить запрос кросс-базы данных в MySQL?

Вы получаете доступ к другим базам данных в одном экземпляре MySQL, префикс таблицы с соответствующим именем базы данных. IE:

SELECT *
  FROM this_database.table_1 t1
  JOIN that_database.table_2 t2 ON t2.column = t1.column

Имейте в виду

Выполняется запрос с учетными данными аутентификации, используемой для настройки подключение. Если вы хотите запросить две таблицы одновременно через два (или более) базы данных, пользователю, используемому для запуска запроса, потребуется доступ к SELECT для всех используемых баз данных.

Справка:

Ответ 2

SELECT * FROM DB1.myTable1 AS db1, DB2.myTable2 AS db2

Ответ 3

http://www.dottedidesign.com/node/14 предоставляет следующий пример:

SELECT 
  arbogast.node.nid as anid, 
  mcguffin.node.nid as mnid, 
  arbogast.node.title as atitle, 
  mcguffin.node.title as mtitle 
FROM arbogast.node, mcguffin.node 
WHERE arbogast.node.nid = 1 
  AND mcguffin.node.nid = arbogast.node.nid;

Где arbogast и mcguffin - разные базы данных.