اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

نعم يمكن الاستعلام من قاعدتي بيانات مختلفتين، الفرق هو وضع اسم قاعدة البيانات التي ينتمي لها الجدول قبل اسمه

الشكل العام:

SELECT 
table_1.*,
table_2.*

FROM [Database_1].[Table_Schema].[Table_Name_1] table_1
JOIN [Database_2].[Table_Schema].[Table_Name_2] table_2 

ON table_1.id = table_2.id

مثال تقريبي:

SELECT t1.*, t2.name -- تحديد الحقول

FROM DataBase_A.table1 t1  -- تحديد الجدول الأول من قاعدة البيانات الأولى
JOIN DataBase_B.table2 t2  -- تحديد الجدول الثاني من قاعدة البيانات الثانية

ON t2.column2 = t1.column1;  -- عمل ربط معين
  • لاحظ أن استخدام الاسم المستعار يسهل الوصول للجداول
  • يكون اسم قاعدة البيانات التي ينتمي لها الجدول بادئة prefix للمجال الذي ينتمي منه الجدول

مثال فعلي:

لنفرض لدينا قاعدة بيانات أولى فيها جدول المستخدمين، وقاعدة بيانات ثانية فيها جدول الرسائل / المحادثات

فيمكنا عمل ربط وجلب رسائل أحد المستخدمين بعمل الربط بشكل عادي كالتالي:

select *

from DataBase_A.dbo.Users    u
join DataBase_B.dbo.Messages m 

on u.UserId = m.UserId

 

  • 1
نشر

عند الاستعلام من جدول ما عادة نذكر أسماء الأعمدة فقط،

  • ضمنيا تجاهلنا إسباق اسم الجدول الذي ينتمي له العمود
  • ضمنيا أيضا تجاهلنا إسباق اسم قاعدة البيانات الذي ينتمي له الجدول

بفرض لدينا جدول المستخدمين users داخل قاعدة البيانات بالاسم company، الثلاث استعلامات التالية متساوية:

SELECT * FROM users;

# يساوي
SELECT users.* FROM users;

# يساوي
SELECT company.users.* FROM users;

تنفيذ الاستعلام من عدة قواعد بيانات

بالذكر الصريح لمكان تواجد البيانات يمكن الاستعلام من عدة جداول في قواعد بيانات مختلفة

بفرض لدينا الجدول users في قاعدتي بيانات لشركتين بالاسم company1 و company2، نستعلم عن مستخدمي الشركتين معًا كالتالي:

SELECT company1.users.*, company2.users.*
FROM company1.users, company2.users;

لدمج النتائج معا وإظهارها كما لو كنا نستعلم من جدول واحد نقوم بعمل دمج بين الجدولين لمطابقة الأعمدة

SELECT *
FROM company1.users;
JOIN company2.users on company1.users.Id = company2.users.Id

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...