یونین (UNION)
یونین (UNION) نتایج چند کوئری را پشت سرهم می چیند. یعنی خروجی ها را بالا و پایین هم قرار می دهد. مثل جمع کردن نمره های دو کلاس در یک فهرست واحد.
UNION چیست؟
برای اینکه UNION کار کند، چند قانون ساده داریم. ستون ها باید هماهنگ باشند. یعنی تعداد برابر، نوع داده برابر، و ترتیب یکسان.
- تعداد ستون ها باید یکی باشد.
- نوع داده ستون ها باید سازگار باشد.
- ترتیب ستون ها باید یکسان باشد.
مثال: ترکیب دو جدول
خروجی products و testproducts را با UNION یکی می کنیم. سپس بر اساس product_id مرتب می کنیم.
SELECT product_id, product_name
FROM products
UNION
SELECT testproduct_id, product_name
FROM testproducts
ORDER BY product_id;
تفاوت UNION و UNION ALL
UNION ردیف های تکراری را حذف می کند. یعنی فقط مقادیر یکتا می آیند. اما UNION ALL هیچ تکراری را حذف نمی کند.
مثال: UNION (بدون تکرار)
SELECT product_id
FROM products
UNION
SELECT testproduct_id
FROM testproducts
ORDER BY product_id;
مثال: UNION ALL (با تکرار)
SELECT product_id
FROM products
UNION ALL
SELECT testproduct_id
FROM testproducts
ORDER BY product_id;
گام های عملی سریع
- ستون های دو کوئری را مقایسه کن.
- اگر متفاوت بودند، آن ها را هماهنگ کن.
- UNION یا UNION ALL را اجرا کن.
نکته: اگر به ترکیب سطری همه با همه نیاز داری، صفحه جوین ضربدری (CROSS JOIN) را ببین. برای دسته بندی نتایج نهایی هم به GROUP BY سر بزن.
برای ارجاع سریع، تعریف یونین (UNION) را همین جا نگه دار.
جمع بندی سریع
- UNION تکراری ها را حذف می کند.
- UNION ALL تکراری ها را نگه می دارد.
- ستون ها باید هم تراز باشند.
- مرتب سازی را با ORDER BY انجام بده.