عملگر UNION و UNION ALL در SQL

عملگر UNION در SQL

عملگر UNION برای ترکیب نتایج جداول دو یا چند دستور SELECT استفاده می‌شود.

لطفاً توجه داشته باشید که دستور SELECT درون UNION باید دارای تعداد ستون یکسان باشد. ستون‌ها باید نوع داده مشابهی داشته باشند. همچنین، ترتیب ستون‌ها در هر دستور SELECT باید مشابه باشد.

قوانین دستور SQL UNION

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

توجه:به طور پیش‌فرض، عملگر UNION مقادیر متفاوت را انتخاب می‌کند. اگر مقادیر تکراری مجاز هستند، از UNION ALL استفاده کنید.

قوانین دستور SQL UNION ALL

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

علاوه بر این، نام ستون‌های درون نتایج UNION همیشه برابر با نام ستون‌های اولین دستور SELECT در UNION است.

در مثال‌های زیر از جدول‌های اصلی استفاده شده است:

Employees_China:

E_ID E_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming

Employees_USA:

E_ID E_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill

استفاده از دستور UNION

مثال:

تمام کارکنان متفاوت در چین و آمریکا را لیست کنید:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

نتایج

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill

توجه:این دستور نمی‌تواند تمام کارکنان در چین و آمریکا را لیست کند. در مثال بالا، دو کارمند با یک نام مشابه وجود دارند و فقط یکی از آنها لیست شده است. دستور UNION فقط مقادیر متفاوت را انتخاب می‌کند.

UNION ALL

دستور UNION ALL و دستور UNION تقریباً مشابه هستند، اما دستور UNION ALL تمام مقادیر را لیست می‌کند.

SQL Statement 1
UNION ALL
SQL Statement 2

استفاده از دستور UNION ALL

مثال:

تمام کارکنان در چین و آمریکا را لیست کنید:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

نتایج

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill