تحتاج عملية UNION إلى بنية أعمدة متسقة بين الفروع، لأن النتيجة النهائية لها عدد واحد من الأعمدة. لذلك يجب أن يعيد كل فرع العدد نفسه من الأعمدة. لا تستطيع العملية وضع صف من عمودين وصف من عمود واحد في النتيجة نفسها دون أن تحدد أنت العمود المقابل المفقود.
تتم مطابقة الأعمدة حسب مواضعها، وليس حسب أسمائها. العمود الأول في الفرع الأول يقابل العمود الأول في الفرع الثاني، وهكذا. عند غياب معلومة من أحد المصادر، يمكن استخدام قيمة ثابتة أو NULL بوصفها عمودًا إضافيًا، بشرط أن يكون ذلك مناسبًا لمعنى البيانات.
مثال
SELECT 1 AS id, 'book' AS item_type
UNION ALL
SELECT 2 AS id, 'movie' AS item_type;
لا تحل إضافة أسماء مستعارة مشكلة اختلاف العدد، كما أن استبدال UNION بـUNION ALL لا يغير هذا الشرط البنيوي. كلاهما يحتاج إلى العدد نفسه في جميع الفروع.
باختصار: وحّد عدد الأعمدة ورتب معانيها في الفروع قبل استخدام أي نوع من عمليتي الدمج.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.