MySQL الاتحاد – البرنامج التعليمي الكامل

ما هو الاتحاد؟

تقوم الاتحادات بدمج النتائج من استعلامات SELECT المتعددة في مجموعة نتائج موحدة.

المتطلبات الوحيدة لكي يعمل هذا هو أن عدد الأعمدة يجب أن يكون هو نفسه من جميع استعلامات SELECT التي يجب دمجها.

لنفترض أن لدينا جدولين على النحو التالي

MySQL UNIONMySQL UNION

لنقم الآن بإنشاء استعلام UNION لدمج كلا الجدولين باستخدام DISTINCT

SELECT column1, column2 FROM `table1`
UNION DISTINCT
SELECT  column1,column2  FROM `table2`;

هنا تتم إزالة الصفوف المكررة ويتم إرجاع الصفوف الفريدة فقط.

الاتحاد-متميز

ملحوظة: MySQL يستخدم جملة DISTINCT كإعداد افتراضي عند تنفيذ استعلامات UNION إذا لم يتم تحديد أي شيء.

لنقم الآن بإنشاء استعلام UNION لدمج كلا الجدولين باستخدام الكل

SELECT `column1`,` column1` FROM `table1`
UNION ALL
SELECT ` column1`,` column1`  FROM `table2`;

هنا يتم تضمين الصفوف المكررة وبما أننا نستخدم ALL.

الاتحاد للجميع

لماذا استخدام النقابات؟

لنفترض أن هناك خللًا في تصميم قاعدة البيانات الخاصة بك وأنك تستخدم جدولين مختلفين مخصصين لنفس الغرض. تريد دمج هذين الجدولين في جدول واحد مع حذف أي سجلات مكررة من الزحف إلى الجدول الجديد. يمكنك استخدام UNION في مثل هذه الحالات.

الملخص

  • يتم استخدام أمر UNION لدمج أكثر من نتيجة استعلام SELECT في استعلام واحد يحتوي على صفوف من كافة استعلامات التحديد.
  • عدد الأعمدة وأنواع البيانات في حدد البيانات يجب أن يكون هو نفسه حتى يعمل أمر UNION.
  • يتم استخدام جملة DISTINCT لإزالة القيم المكررة من مجموعة نتائج استعلام UNION. MySQL يستخدم جملة DISTINCT كإعداد افتراضي عند تنفيذ استعلامات UNION إذا لم يتم تحديد أي شيء.
  • يتم استخدام جملة ALL لإرجاع كافة الصفوف المكررة في استعلام UNION.

أمثلة عملية باستخدام MySQL طاولة العمل

في myFlixDB لدينا يتيح الجمع

رقم العضوية والأسماء الكاملة من جدول الأعضاء

مع

movie_id والعنوان من جدول الأفلام

يمكننا استخدام الاستعلام التالي

SELECT `membership_number`,`full_names` FROM `members`
UNION
SELECT `movie_id`,`title` FROM `movies`;

تنفيذ البرنامج النصي أعلاه في MySQL طاولة العمل مقابل myflixdb يعطينا النتائج التالية الموضحة أدناه.

membership_number full_names
1 Janet Jones
2 Janet Smith Jones
3 Robert Phil
4 Gloria Williams
5 Leonard Hofstadter
6 Sheldon Cooper
7 Rajesh Koothrappali
8 Leslie Winkle
9 Howard Wolowitz
16 67% Guilty
6 Angels and Demons
4 Code Name Black
5 Daddy's Little Girls
7 Davinci Code
2 Forgetting Sarah Marshal
9 Honey mooners
19 movie 3
1 Pirates of the Caribean 4
18 sample movie
17 The Great Dictator
3 X-Men