2つの異なるデータベーステーブルに結合を使用できますか?


98

異なるデータベースの2つのテーブルに対して結合操作を使用できますか?はいの場合、どうすればよいですか?

両方のデータベースは同じサーバー上にあり、DBMSは同じです。

回答:


187

SQL Serverでは、データベースが同じサーバー上にある限り、異なるデータベースのテーブルを結合できます。結合構文は同じです。唯一の違いは、テーブル名を完全に指定する必要があることです。

同じサーバー上に2つのデータベースがあるとします- Db1Db2。列とDb1呼ばれるテーブルがClientsあり、列ClientIdDb2呼ばれるテーブルMessagesがありますClientId(これらのテーブルが異なるデータベースにある理由は別としてください)。

ここで、上記のテーブルで結合を実行するには、次のクエリを使用します。

select *
from Db1.dbo.Clients c
join Db2.dbo.Messages m on c.ClientId = m.ClientId

17
両方のデータベースに同じセキュリティコンテキストでアクセスできる必要があることに注意してください。つまり、2つのデータベースに異なる認証情報を使用してログインすると、上記は機能しません。その場合は、おそらく「リンクサーバー」を使用する必要があります。
Ian Goldby

2

データベースで類義語部分を使用できます。

ここに画像の説明を入力してください

次に、[シノニム]タブのビューウィザードで、保存したシノニムを見つけて、ビューに追加し、内部結合を簡単に設定します。 ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.