UNION مع تحديد UNION ALL أو UNION DISTINCT صراحةً.
إذا لم تحدد ALL أو DISTINCT، فسيعتمد ذلك على الإعداد union_default_mode. ويتمثل الفرق بين UNION ALL وUNION DISTINCT في أن UNION DISTINCT يزيل القيم المكررة من نتيجة union، وهو مكافئ لعبارة SELECT DISTINCT من استعلام فرعي يحتوي على UNION ALL.
يمكنك استخدام UNION لدمج أي عدد من استعلامات SELECT عبر ضم نتائجها. مثال:
Query
SELECT). وإذا لم تتطابق أسماء الأعمدة، فتُؤخذ أسماء النتيجة النهائية من الاستعلام الأول.
يُجرى تحويل الأنواع في عمليات union. على سبيل المثال، إذا كان هناك استعلامان مدمجان يحتويان على الحقل نفسه من نوعين متوافقين، أحدهما Nullable والآخر غير Nullable، فإن UNION الناتج سيكون فيه هذا الحقل من النوع Nullable.
يمكن إحاطة الاستعلامات التي تُشكّل أجزاءً من UNION بعلامتي (). ويُطبَّق ORDER BY وLIMIT على كل استعلام على حدة، وليس على النتيجة النهائية. وإذا كنت بحاجة إلى تطبيق تحويل على النتيجة النهائية، فيمكنك وضع جميع الاستعلامات التي تحتوي على UNION داخل استعلام فرعي في عبارة FROM.
إذا استخدمت UNION من دون تحديد UNION ALL أو UNION DISTINCT صراحةً، فيمكنك تحديد وضع union باستخدام الإعداد union_default_mode. يمكن أن تكون قيم الإعداد ALL أو DISTINCT أو سلسلة فارغة. ومع ذلك، إذا استخدمت UNION مع ضبط union_default_mode على سلسلة فارغة، فسيؤدي ذلك إلى طرح استثناء. توضّح الأمثلة التالية نتائج الاستعلامات مع قيم إعداد مختلفة.
Query
Response
Query
Response
UNION/UNION ALL/UNION DISTINCT بالتزامن، وقد تختلط نتائجها معًا.
انظر أيضًا
- إعداد insert_null_as_default.
- إعداد union_default_mode.