SQL UNION ALL Operator

زبان SQL وقتی بخوایم نتایج چند کوئری رو پشت سر هم ترکیب کنیم و رکوردهای تکراری هم حفظ بشن، از UNION ALL استفاده می‌کنیم.

🔹 ساختار کلی

SELECT column1, column2, ... FROM table1 UNION ALL SELECT column1, column2, ... FROM table2;
  • ستون‌ها باید از نظر تعداد و نوع داده با هم سازگار باشن.

  • برخلاف UNION، اینجا رکوردهای تکراری حذف نمی‌شن.

🔹 مثال ساده

جدول: Customers_in_Iran

idnamecity
1AliTehran
2SaraMashhad

جدول: Customers_in_Turkey

idnamecity
1AliTehran
2RezaIstanbul

کوئری با UNION:

SELECT name, city FROM Customers_in_Iran UNION SELECT name, city FROM Customers_in_Turkey;

📌 خروجی (بدون تکراری):

namecity
AliTehran
SaraMashhad
RezaIstanbul


کوئری با UNION ALL:

SELECT name, city FROM Customers_in_Iran UNION ALL SELECT name, city FROM Customers_in_Turkey;

📌 خروجی (با تکراری):

namecity
AliTehran
SaraMashhad
AliTehran
RezaIstanbul


🔹 مثال با شرط‌ها

SELECT name, city FROM Customers_in_Iran WHERE city = 'Tehran' UNION ALL SELECT name, city FROM Customers_in_Turkey WHERE city = 'Tehran';

📌 خروجی شامل همه ردیف‌های تهرانی از هر دو جدول میشه، حتی اگر تکراری باشن.

نکات مهم

  • UNION → رکوردهای تکراری حذف میشن.

  • UNION ALL → رکوردهای تکراری هم نمایش داده میشن.

  • برای سرعت بهتر، وقتی مطمئنید داده‌ها تکراری نیستن یا می‌خواید تکراری‌ها بمونن، از UNION ALL استفاده کنید.

  • می‌تونید بعد از کل کوئری از ORDER BY برای مرتب‌سازی نهایی استفاده کنید.