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