هل تحذف UNION التكرار بناءً على عمود واحد أم الصف كاملًا؟

متوسطقراءة دقيقةآخر تحديث 3 أكتوبر 2026

SQL قواعد البيانات

الإجابة

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

تظهر هذه النقطة عند دمج كتب وأفلام في قائمة واحدة. قد يحمل كتاب وفيلم الرقم نفسه، لكن إضافة نوع العنصر تميز السجلين وتحافظ عليهما. وعلى العكس، إذا اخترت المعرّف فقط، فقد تندمج القيم المتساوية وتفقد التمييز بين المصدرين، حتى لو كانت تمثل عناصر مختلفة في التطبيق.

مثال

SELECT 1 AS item_id, 'book' AS source
UNION
SELECT 1 AS item_id, 'movie' AS source;

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

باختصار: تقارن UNION الصف الكامل، ولا تختزل صفين مختلفين في أحد الأعمدة لمجرد تطابق المعرّف.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر فهمك

ما الصفوف التي يعيدها الاستعلام بالترتيب؟

CREATE TABLE books (id INT PRIMARY KEY);
CREATE TABLE movies (id INT PRIMARY KEY);
INSERT INTO books (id) VALUES (1);
INSERT INTO movies (id) VALUES (1);

SELECT id, 'book' AS source FROM books
UNION
SELECT id, 'movie' AS source FROM movies
ORDER BY id, source;