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

هل يمكنني الاستعلام من قاعدتي بيانات معاً في MySQL أو SQL Server مستخدماً SQL

سعيد يوسف

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...