مشخصات مقاله
-
5596
-
0.0
-
42440
-
0
-
0
آموزش UNION
عملگر UNION نتیجه دو یا چند دستور SELECT را با یکدیگر ترکیب می کند. توجه داشته باشید که هر دستور SELECT در عملگر UNION باید تعداد ستونهای یکسانی را برگردانند. همچنین ستونها باید Data Type یکسانی داشته باشند. علاوه بر این ستونها در هر دستور SELECT باید به یک صورت مرتب شده باشند.
فرم عملگر UNION
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

عملگر UNION تنها داده هایی را به صورت پیش فرض انتخاب می کند که از یکدیگر متمایز باشند. برای اینکه داده های تکراری را هم بیاوریم از کلید واژه ALL به همراه UNION استفاده کنید.
فرم عملگر UNION ALL
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

نام ستون ها در جدول نتایج معمولا برابر نام ستونها در دستور SELECT اول در عملگر UNION می باشد.
برای مثال در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:
آنچه در زیر می بینید گزیده ای است از جدول "Suppliers" :
مثال استفاده از کلید واژه UNION
عبارت SQL زیر نام تمام شهر های مختلف را (تنها از بین مقادیر مشخص) از ستون "City" و از میان جداول Customers و Suppliers انتخاب می کند:
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

عملگر UNION نمی تواند برای لیست کردن تمام شهر های دو جدول مورد استفاده قرار گیرد. اگر تعدادی از مشتریان و عرضه کنندگان دارای نام شهر یکسانی باشند، نام آن شهر تنها یکبار در لیست قرار میگیرد
UNION تنها مقادیر غیر تکراری را انتخاب می کند. برای انتخاب مقادیر تکراری از UNION ALL استفاده کنید.
مثال استفاده از عملگر UNION ALL
عبارت SQL زیر از عملگر UNION ALL برای انتخاب تمام (حتی مقادیر تکراری) شهر ها از جداول Customers و Suppliers استفاده می کند:
SELECT City FROM Customers UNION ALL SELECT City FROM Suppliers ORDER BY City;
مثال استفاده از عملگر UNION ALL همراه با دستور WHERE
عبارت SQL زیر از عملگر UNION ALL برای انتخاب تمام (حتی مقادیر تکراری) شهر های آلمان از جداول Customers و Suppliers استفاده می کند:
SELECT City, Country FROM Customers WHERE Country='Germany' UNION ALL SELECT City, Country FROM Suppliers WHERE Country='Germany' ORDER BY City;