Об’єднати між таблицями у двох різних базах даних?


123

В MySQL, у мене є дві різні бази даних - виклик ДАВАЙТЕ їх A і B .

Чи можливо здійснити з'єднання між таблицею, що знаходиться в базі даних A , до таблиці, що знаходиться в базі даних B ?

Відповіді:


154

Так, якщо обліковий запис має відповідні дозволи, ви можете використовувати:

SELECT <...>
FROM A.table1 t1 JOIN B.table2 t2 ON t2.column2 = t1.column1;

Вам просто потрібно встановити посилання таблиці на ім'я бази даних, в якій вона перебуває.


4
А як щодо двох баз даних з різних серверів? (наприклад, один db на сервері хмарних сервісів і db на власному сервері)
Yuval A.

1
Чи можливо приєднатися до різних БД, DB1 = mysql & DB2 = PostgreSQL). В обох є кілька загальних таблиць.
МАКС

1
@ YuvalA. @ Boatcoder Я не думаю, що Юваль запитує про продуктивність. просто запитати про те, як зробити з'єднання між серверами. було б досить складно, оскільки вам потрібно попросити клієнта здійснити два з'єднання.
Jayen

переконайтесь, що ім’я бази даних НЕ знаходиться в тих же задніх місцях, що і ім’я таблиці, інакше ви отримаєтеERROR 1146 (42S02): Table 'currentdb.otherdb.tablename' doesn't exist
Jeff

Дякую. він також працював зі мною без псевдонімівFROM A.table1 JOIN B.table2 ON B.table2 .column2 = A.table1.column1
Бухгалтер,



0
SELECT <...>
FROM A.table1 t1 JOIN B.table2 t2 ON t2.column2 = t1.column1;

Просто переконайтеся, що в рядку SELECT ви вказуєте, які стовпці таблиці ви використовуєте, або за повними посиланнями, або за псевдонімом. Будь-яке з наступного буде працювати:

SELECT *
SELECT t1.*,t2.column2
SELECT A.table1.column1, t2.*
etc.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.