> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق عبارة UNION

# عبارة UNION

يمكنك استخدام `UNION` مع تحديد `UNION ALL` أو `UNION DISTINCT` صراحةً.

إذا لم تحدد `ALL` أو `DISTINCT`، فسيعتمد ذلك على الإعداد `union_default_mode`. ويتمثل الفرق بين `UNION ALL` و`UNION DISTINCT` في أن `UNION DISTINCT` يزيل القيم المكررة من نتيجة union، وهو مكافئ لعبارة `SELECT DISTINCT` من استعلام فرعي يحتوي على `UNION ALL`.

يمكنك استخدام `UNION` لدمج أي عدد من استعلامات `SELECT` عبر ضم نتائجها. مثال:

```sql title="Query" theme={null}
SELECT CounterID, 1 AS table, toInt64(count()) AS c
    FROM test.hits
    GROUP BY CounterID

UNION ALL

SELECT CounterID, 2 AS table, sum(Sign) AS c
    FROM test.visits
    GROUP BY CounterID
    HAVING c > 0
```

تُطابَق أعمدة النتيجة بحسب فهرسها (الترتيب داخل `SELECT`). وإذا لم تتطابق أسماء الأعمدة، فتُؤخذ أسماء النتيجة النهائية من الاستعلام الأول.

يُجرى تحويل الأنواع في عمليات union. على سبيل المثال، إذا كان هناك استعلامان مدمجان يحتويان على الحقل نفسه من نوعين متوافقين، أحدهما `Nullable` والآخر غير `Nullable`، فإن `UNION` الناتج سيكون فيه هذا الحقل من النوع `Nullable`.

يمكن إحاطة الاستعلامات التي تُشكّل أجزاءً من `UNION` بعلامتي `()`. ويُطبَّق [ORDER BY](/ar/reference/statements/select/order-by) و[LIMIT](/ar/reference/statements/select/limit) على كل استعلام على حدة، وليس على النتيجة النهائية. وإذا كنت بحاجة إلى تطبيق تحويل على النتيجة النهائية، فيمكنك وضع جميع الاستعلامات التي تحتوي على `UNION` داخل استعلام فرعي في عبارة [FROM](/ar/reference/statements/select/from).

إذا استخدمت `UNION` من دون تحديد `UNION ALL` أو `UNION DISTINCT` صراحةً، فيمكنك تحديد وضع union باستخدام الإعداد [union\_default\_mode](/ar/reference/settings/session-settings#union_default_mode). يمكن أن تكون قيم الإعداد `ALL` أو `DISTINCT` أو سلسلة فارغة. ومع ذلك، إذا استخدمت `UNION` مع ضبط `union_default_mode` على سلسلة فارغة، فسيؤدي ذلك إلى طرح استثناء. توضّح الأمثلة التالية نتائج الاستعلامات مع قيم إعداد مختلفة.

```sql title="Query" theme={null}
SET union_default_mode = 'DISTINCT';
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 2;
```

```text title="Response" theme={null}
┌─1─┐
│ 1 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 3 │
└───┘
```

```sql title="Query" theme={null}
SET union_default_mode = 'ALL';
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 2;
```

```text title="Response" theme={null}
┌─1─┐
│ 1 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 3 │
└───┘
```

يمكن تنفيذ الاستعلامات التي تشكّل جزءًا من `UNION/UNION ALL/UNION DISTINCT` بالتزامن، وقد تختلط نتائجها معًا.

**انظر أيضًا**

* إعداد [insert\_null\_as\_default](/ar/reference/settings/session-settings#insert_null_as_default).
* إعداد [union\_default\_mode](/ar/reference/settings/session-settings#union_default_mode).
