ChatGPT解决这个技术问题 Extra ChatGPT

在两个不同数据库中的表之间连接?

在 MySQL 中,我有两个不同的数据库——我们称它们为 A 和 B。

是否可以在数据库 A 中的表和数据库 B 中的表之间执行连接?


p
potashin

是的,假设帐户具有适当的权限,您可以使用:

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

您只需要在表引用之前加上它所在的数据库的名称。


来自不同服务器的两个数据库呢? (例如云服务服务器上一个db,自己服务器上一个db)
是否可以加入不同的数据库,DB1 = mysql & DB2 = PostgreSQL) 。两者都有很少的共同表。
@YuvalA.@boatcoder 我不认为 yuval 是在询问性能。只是询问如何进行跨服务器加入。将非常困难,因为您需要要求客户端进行两个连接。
确保数据库名称与表名称不在同一个反引号内,否则您将获得 ERROR 1146 (42S02): Table 'currentdb.otherdb.tablename' doesn't exist
谢谢。它也适用于没有别名的我FROM A.table1 JOIN B.table2 ON B.table2 .column2 = A.table1.column1
p
potashin
SELECT <...> 
FROM A.tableA JOIN B.tableB 

K
Kalaivani M
SELECT *
FROM A.tableA JOIN B.tableB 

或者

SELECT *
  FROM A.tableA JOIN B.tableB
  ON A.tableA.id = B.tableB.a_id;

N
Noel Swanson
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.