UNION مقابل UNION ALL
جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy. الدرس 16 من 27.
تعرّفت على UNION في Fundamentals: فهو يكدّس مجموعتي نتائج فوق بعضهما. وبشكل افتراضي، يقوم أيضًا بإزالة التكرارات، مما يتطلب عملية فرز إضافية.
SELECT name FROM authors
UNION
SELECT name FROM editorsUNION ALL ينفّذ عملية التكديس نفسها، لكنه يُبقي التكرارات. وهو أسرع، وغالبًا ما يكون ما تريده عندما تعرف أن الجانبين لا يمكنهما إنتاج الصف نفسه، أو عندما تريد بالفعل احتساب كل تكرار.
SELECT name FROM authors
UNION ALL
SELECT name FROM editorsيجب أن يعيد كلا الجانبين العدد نفسه من الأعمدة، بالترتيب نفسه، وبأنواع متوافقة.
التحدي
سهلالجداول والأعمدة المتاحة:
online_orders:order_no،amountretail_orders:ticket_no،total
يتتبع الجدولان الطلبات من قناتين مختلفتين بأسماء أعمدة مختلفة. أعد قائمة موحّدة بكل طلب، مع الأعمدة التالية:
channel:'online'أو'retail'order_id: قيمةorder_noمن online، وقيمةticket_noمن retailamount: إجمالي الطلب (منamountأوtotal)
احتفظ بكل صف (من دون إزالة التكرارات). رتّب حسب amount ترتيبًا تنازليًا.
جرّب بنفسك
-- اثنان من SELECTs محاذيان لنفس الـ 3 أعمدة، متصلان بواسطة UNION ALL
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس ما وراء الأساسيات
تدرّب بنفسك: Playground لـ SQL