เราสามารถใช้ join สำหรับสองตารางฐานข้อมูลที่แตกต่างกันได้หรือไม่?


103

เราสามารถใช้การรวมสำหรับสองตารางจากฐานข้อมูลที่แตกต่างกันได้หรือไม่? ถ้าใช่ฉันจะทำอย่างไร?

ฐานข้อมูลทั้งสองอยู่บนเซิร์ฟเวอร์เดียวกันและ DBMS เหมือนกัน

คำตอบ:


193

SQL Server ช่วยให้คุณสามารถเข้าร่วมตารางจากฐานข้อมูลต่างๆได้ตราบเท่าที่ฐานข้อมูลเหล่านั้นอยู่บนเซิร์ฟเวอร์เดียวกัน ไวยากรณ์การรวมเหมือนกัน ข้อแตกต่างเพียงอย่างเดียวคือคุณต้องระบุชื่อตารางอย่างครบถ้วน

สมมติว่าคุณมีสองฐานข้อมูลบนเซิร์ฟเวอร์เดียวกัน - และDb1 มีตารางที่เรียกว่ามีคอลัมน์และมีตารางที่เรียกว่าด้วยคอลัมน์(อย่าลืมว่าทำไมตารางเหล่านั้นจึงอยู่ในฐานข้อมูลที่แตกต่างกัน)Db2Db1ClientsClientIdDb2MessagesClientId

ตอนนี้เพื่อทำการเข้าร่วมในตารางดังกล่าวข้างต้นคุณจะใช้แบบสอบถามนี้:

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

20
บางทีควรสังเกตว่าทั้งสองฐานข้อมูลต้องสามารถเข้าถึงได้ในบริบทความปลอดภัยเดียวกัน กล่าวอีกนัยหนึ่งคือหากคุณเข้าสู่ระบบด้วยข้อมูลรับรองที่แตกต่างกันสำหรับทั้งสองฐานข้อมูลข้างต้นจะไม่ทำงาน ในกรณีนี้คุณอาจต้องใช้ "เซิร์ฟเวอร์ที่เชื่อมโยง"
Ian Goldby

2

คุณสามารถใช้ส่วนคำพ้องความหมายในฐานข้อมูล

ป้อนคำอธิบายภาพที่นี่

จากนั้นในมุมมองตัวช่วยสร้างจากแท็บคำพ้องความหมายค้นหาคำพ้องความหมายที่คุณบันทึกไว้และเพิ่มเพื่อดูและตั้งค่าการเข้าร่วมภายในอย่างง่ายดาย ป้อนคำอธิบายภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.