서로 다른 두 데이터베이스의 테이블간에 조인 하시겠습니까?


123

MySQL에는 두 개의 다른 데이터베이스가 있습니다. AB 라고 부르겠습니다. .

데이터베이스 A 에있는 테이블과 데이터베이스 B에 있는 테이블간에 조인을 수행 할 수 있습니까?

답변:


154

예, 계정에 사용할 수있는 적절한 권한이 있다고 가정합니다.

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

테이블 참조 앞에 그것이있는 데이터베이스 이름을 접두사로 붙이기 만하면됩니다.


4
다른 서버의 두 데이터베이스는 어떻습니까? (예를 들어, 클라우드 서비스 서버에 한 개의 db, 자체 서버에있는 db)
Yuval A.

1
다른 DB, DB1 = mysql & DB2 = PostgreSQL)에 조인 할 수 있습니까? 둘 다 공통 테이블이 거의 없습니다.
MAX

1
@ YuvalA. @ boatcoder 나는 yuval이 성능에 대해 묻고 있다고 생각하지 않습니다. 단순히 서버 간 조인을 수행하는 방법에 대해 묻습니다. 클라이언트에게 두 개의 연결을 요청해야하기 때문에 상당히 어려울 것입니다.
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
Accountant م


2
SELECT *
FROM A.tableA JOIN B.tableB 

또는

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

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.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.