Bisakah kita menggunakan join untuk dua tabel database yang berbeda?

99

Bisakah kita menggunakan operasi gabungan untuk dua tabel dari database yang berbeda? Jika ya, bagaimana cara melakukannya?

Kedua database berada di server yang sama dan DBMS juga sama.

Vivek Kumar Ray
sumber

Jawaban:

188

SQL Server memungkinkan Anda untuk menggabungkan tabel dari database yang berbeda selama database tersebut berada di server yang sama. Sintaks gabungannya sama; satu-satunya perbedaan adalah Anda harus menentukan nama tabel sepenuhnya.

Misalkan Anda memiliki dua database di server yang sama - Db1dan Db2. Db1memiliki tabel yang disebut Clientsdengan kolom ClientIddan Db2memiliki tabel yang disebut Messagesdengan kolom ClientId(mari kita tinggalkan mengapa tabel tersebut berada dalam database yang berbeda).

Sekarang, untuk melakukan gabungan pada tabel yang disebutkan di atas, Anda akan menggunakan kueri ini:

select *
from Db1.dbo.Clients c
join Db2.dbo.Messages m on c.ClientId = m.ClientId
RePierre
sumber
18
Mungkin harus dicatat bahwa kedua database harus dapat diakses dalam konteks keamanan yang sama. Dengan kata lain, jika Anda masuk dengan kredensial yang berbeda untuk dua database maka hal di atas tidak akan berfungsi. Dalam hal ini Anda mungkin harus menggunakan "Server Tertaut".
Ian Goldby
2

Anda dapat menggunakan bagian Sinonim dalam database.

masukkan deskripsi gambar di sini

Kemudian dalam tampilan wizard dari tab Sinonim temukan sinonim yang Anda simpan dan tambahkan untuk melihat dan mengatur gabungan dalam secara sederhana. masukkan deskripsi gambar di sini

Ata Hoseini
sumber