UNION ALL (UNION ALL)
«یونین آل (UNION ALL)» خروجی چند SELECT را پشت سرهم می چسباند. سپس همه ردیف ها را نگه می دارد. «تکراری (Duplicate)» حذف نمی شود. مثل چسباندن دو لیست شهر، حتی اگر نام ها تکراری باشند.
قوانین مهم UNION ALL
تعداد ستون ها باید برابر باشد. نوع داده ها نیز باید مشابه باشد. ترتیب ستون ها هم باید یکسان باشد. نام ستون های نهایی معمولاً از اولین SELECT می آید.
سینتکس استاندارد
SELECT column_name(s) FROM table1;
UNION ALL;
SELECT column_name(s) FROM table2;
نکته: اگر حذف تکراری ها لازم است، از UNION استفاده کن. برای همین صفحه هم می توانی یونین آل را نشانه گذاری کنی.
مثال 1: شهرها با ردیف های تکراری
می خواهیم شهرهای مشتریان و تأمین کنندگان را کنار هم ببینیم. تکراری ها حذف نمی شوند. در پایان با City مرتب می کنیم.
SELECT City FROM Customers;
UNION ALL;
SELECT City FROM Suppliers;
ORDER BY City;
مثال 2: فیلتر کشور با WHERE
فقط شهرهای آلمان را می خواهیم. هر دو SELECT شرط یکسان دارند. خروجی همچنان شامل تکراری هاست.
SELECT City,
Country
FROM Customers
WHERE Country = 'Germany';
UNION ALL;
SELECT City,
Country
FROM Suppliers
WHERE Country = 'Germany';
ORDER BY City;
گام های سریع تمرین
- SELECT اول را با ستون های هدف بنویس.
- کلمه UNION ALL را اضافه کن.
- SELECT دوم را با همان ستون ها بنویس.
- در صورت نیاز WHERE را در هر دو تکرار کن.
- در انتها ORDER BY را برای کل خروجی بگذار.
جمع بندی سریع
- UNION ALL تکراری ها را حذف نمی کند.
- تعداد و ترتیب ستون ها باید یکی باشد.
- نام ستون ها از SELECT اول می آید.
- برای حذف تکراری ها از UNION استفاده کن.
- ORDER BY باید فقط یک بار در انتها باشد.