2つの異なるデータベースのテーブル間を結合しますか?


123

MySQLでは、2つの異なるデータベースがあります-それらをABと呼びましょう。

データベースAにあるテーブルとデータベースBにあるテーブルを結合することはできますか?

回答:


154

はい、使用できる適切な権限がアカウントにあると想定します。

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

テーブル参照の前に、それが存在するデータベースの名前を付ける必要があります。


4
異なるサーバーからの2つのデータベースはどうですか?(たとえば、1つのdbがクラウドサービスサーバーにあり、dbが独自のサーバーにある)
Yuval A.

1
異なるDBに参加することは可能ですか、DB1 = mysql&DB2 = PostgreSQL)。どちらにも共通のテーブルはほとんどありません。
MAX

1
@ YuvalA。@ boatcoder yuvalがパフォーマンスについて尋ねているとは思いません。クロスサーバー参加の方法を尋ねるだけです。クライアントに2つの接続を確立するよう依頼する必要があるため、非常に困難になります。
Jayen 2017

データベース名は、そうでない場合、あなたが取得するテーブル名と同じバッククォート内にないことを確認してくださいERROR 1146 (42S02): Table 'currentdb.otherdb.tablename' doesn't exist
ジェフ・

ありがとう。また、エイリアス名なしで私と一緒に機能しましたFROM A.table1 JOIN B.table2 ON B.table2 .column2 = A.table1.column1
会計士م08


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.