2012-01-06 3 views
5

как использовать две таблицы в одном запросе, которые находятся в различных базах данных, значит,Выберите два или несколько таблиц из разных баз данных

SELECT table1.id, table1.name, table2.id, table2.telephone 
FROM table1, table2 
WHERE table1.id = table2.id 

здесь, table1 и table2 находятся в отдельной базе данных.

+0

Является ли это действительно не по теме? –

ответ

10

Вы можете создавать кросс-базы данных, без проблем. Просто префикс имени вашей таблицы с именем базы данных.

SELECT t1.id, t1.name, t2.id, t2.telephone 
FROM db1.table1 t1 
INNER JOIN db2.table2 t2 on t1.id = t2.id; 

Будьте осторожны с разрешениями. Если у пользователя нет доступа к одной из баз данных, этот выбор не будет выполнен.

+0

как написать его в php-режиме? пожалуйста, дайте пример для этого, как открыть разные два соединения с базой данных за раз в php? –

+0

Просто выполните этот SQL, он должен работать так, как есть. –

+0

есть ли какие-либо проблемы со скоростью, когда мы используем обе базы данных за раз или две таблицы в одной базе данных? –

1

Вы должны использовать полностью квалифицированные имена для таблиц, а также полей/атрибутов:

SELECT table1.id, table1.name, table2.id, table2.telephone 
FROM db_1.table1, db_2.table2 
WHERE table1.id = table2.id 
+0

. Каким будет имя восстановленного столбца для поля, например $ Row ['column_name']? –

Смежные вопросы