2012-07-11 19 views
53

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

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

+3

@vivekrai:

、このクエリを使用することになり、上記の表に結合を実行します。 'SELECT * FROM DBOne.dbo.Table1のようなものです。AS1 t1 INNER JOIN DBTwo.dbo.Table2 t2 ON t2.ID = t1.ID' –

+15

「ローカライズされすぎていますか?本当に ? 10,000回の再生回数で?それはクレイジーです ! – JYL

+2

あなたの質問に何も関係がない場合、なぜその答えを受け入れましたか? – vivoconunxino

答えて

111

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

同じサーバーに2つのデータベース(Db1Db2)があるとします。 Db1にはClientsという表があり、列にはClientIdDb2にはMessagesという表があり、列にはClientIdという表があります(これらの表が異なるデータベースに存在する理由を念頭に置いておきます)。 - あなたが必要とするすべてはあなたのselect句であなたのデータベース名を付加することで、その場合には

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

シンプルで便利です..素晴らしい答え – Vikram

+18

これは受け入れられる答えである必要があります。 – JYL

+9

おそらく、両方のデータベースが同じセキュリティコンテキストでアクセス可能でなければならないことに注意してください。言い換えると、2つのデータベースの異なる資格情報でログインすると、上記は機能しません。その場合は、おそらく "リンクサーバー"を使用する必要があります。 –

0
SELECT ... 
FROM A.table t1 
JOIN B.table2 t2 ON t2.column = t1.col 
関連する問題