الفرق بين union و join و فوائد استخدام union و Vertical Merge

السلام عليكم ورحمة الله..

عيدكم مبارك ان شاء الله فى دوام الصفحة والعافية..

كثير من الناس لايعرف ماهى union ومن يعرفها قد لا يجد لها داعى..

بوضح ان شاء الله الفرق بين union و join وفوائد استخدام union

معروف ان join فى للربط الافقى بين الجداول.. اى تصبح الجداول بجانب بعضها البعض.. طبعا بدون الخوض فى انواع join الربط الافقى هو اساس جميع انواعها..

اما union فهى للربط الراسى بين الجداول او vertical merge فتصبح الجداول تحت بعضها البعض..

استخدامها فى النطاق الكبير فى قواعد البيانات الموزعة distributed database بحيث مثلا قواعد البيانات تكون مقسمة على عدة دول مثلا او عدة مدن بحيث كل دوله او مدينة بيكون فيها database server يحمل جزامن البيانات..

لان مثلا المبرمجين فى فرع القاهرة ليس دائما فى حاجه لعرض بيانات فرع الجيزة مثلا..

وبالتالى تكون البيانات موجوده على السيرفر بدون فائدة فالتوزيع الامر يفيد فى سرعة الاتصال والحمايه وسرعة الحصول على البيانات وامور اخرى..

لنفرض مثلا الفرع الرئيسيى عايز يعرض اسماء جميع الموظفين فى كل الفروع.. هنا يجى دور union فى عمل vertical merge بين جدول الموظفين فى القاهرة والجيزه والنتيجة تكون جدول واحد فقط..

اما فى النطاق الصغير او المتوسط تكون قاعدة واحده فقط على جهاز واحد فقط ويتم تقسيم البيانات على اكثر من جدول لسرعة احضار البيانات لنفرض مثلا جدولين الموظفين داخل الشركة جدول indoor وخارج الشركة
outdoor

ممكن وضعهم فى جدول واحد مع اضافة حقل لتحديد النوع وهذه الطريقة التقليدية المعتاده..

ولكن الافضل تقسيمهم الى جدولين لان احضار موظف من جدول 5000 سجل اسهل من احضار موظف من جدول 10000 سجل.. وقد تحتاج لاحقا لان تبحث عن موظف بالاسم فقط.. لذلك تحتاج union لكل تجعل الجدولين كانهم جدول واحد فقط..

مثال على union

كود PHP:
كود PHP:
 select from t1 where CONDITION 
union select 
from t2 where CONDITION 
union select 
from t3 where CONDITION 
order by id desc 
طبعا ليس بالضرورة استخدم * بل يمكن تحديد حقول معينه ولكن يجب مراعاه استخراج نفس الحقول من باقى الجداول


بالتوفيق ان شاء الله..