26- كورس شرح قواعد البيانات MYSQL – MySQL UNION

MySQL UNION: شرح مفصل مع أمثلة

مقدمة

تعتبر MySQL واحدة من أشهر أنظمة إدارة قواعد البيانات العلائقية (RDBMS) في العالم، وتستخدم بشكل واسع في تطوير التطبيقات المختلفة. من بين الميزات القوية التي توفرها MySQL هي ميزة `UNION`، التي تتيح للمستخدمين دمج نتائج استعلامات متعددة في نتيجة واحدة. في هذا المقال، سنقدم شرحًا مفصلاً حول كيفية استخدام `UNION` في MySQL مع تقديم أمثلة متعددة لتوضيح الفكرة.

ما هو UNION في MySQL؟

`UNION` في MySQL هو عامل يستخدم لدمج نتائج مجموعتين أو أكثر من الاستعلامات في نتيجة واحدة. يجب [شركة برمجة مصرية] أن تحتوي جميع الاستعلامات على نفس عدد الأعمدة مع أنواع بيانات متوافقة. بشكل افتراضي، يقوم `UNION` بإزالة التكرارات من النتائج، ولكن يمكن استخدام `UNION ALL` للاحتفاظ بالتكرارات.

متطلبات استخدام UNION

1. **عدد الأعمدة**: يجب أن يكون عدد الأعمدة في كل استعلام متساويًا.
2. **أنواع البيانات**: يجب أن تكون أنواع البيانات في الأعمدة المتقابلة متوافقة.
3. **ترتيب الأعمدة**: يجب أن يكون ترتيب الأعمدة في كل استعلام متماثلاً.

الصيغة الأساسية لـ UNION

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

مثال 1: دمج نتائج جدولين

لنفترض أن لدينا جدولين: `employees` و `contractors`. يحتوي كلا الجدولين على أعمدة `name` و `email`. نريد دمج قائمة الأسماء والعناوين البريدية من كلا الجدولين.

SELECT name, email FROM employees
UNION
SELECT name, email FROM contractors;

هذا الاستعلام سيعيد قائمة موحدة بالأسماء والعناوين البريدية من الجدولين، مع إزالة التكرارات.

مثال 2: استخدام UNION ALL

إذا كنا نرغب في الاحتفاظ بالتكرارات، يمكننا استخدام `UNION ALL`.

SELECT name, email FROM employees
UNION ALL
SELECT name, email FROM contractors;

هذا الاستعلام سيعيد جميع الصفوف من كلا الجدولين، بما في ذلك [شركة برمجة مصرية] التكرارات.

مثال 3: دمج نتائج مع شروط WHERE مختلفة

يمكن استخدام `UNION` مع شروط `WHERE` مختلفة لكل استعلام. لنفترض أننا نريد دمج قائمة الموظفين الذين يعملون في قسم “التسويق” مع قائمة المتعاقدين الذين يعملون في قسم “المبيعات”.

SELECT name, email FROM employees WHERE department = 'Marketing'
UNION
SELECT name, email FROM contractors WHERE department = 'Sales';

مثال 4: دمج نتائج مع ترتيب

يمكن استخدام `ORDER BY` لترتيب النتائج المدمجة، ولكن يجب وضعه في النهاية بعد كل الاستعلامات.

SELECT name, email FROM employees
UNION
SELECT name, email FROM contractors
ORDER BY name;

هذا الاستعلام سيعيد قائمة مدمجة مرتبة بالأسماء.

الخلاصة

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