UNION MySQL-এ একটি অপারেটর। এর সাথে ORDER BY ব্যবহার করে রেকর্ড ফিল্টার করা যায়। UNION ব্যবহার করুন যদি আপনি একাধিক টেবিল বা একই টেবিলের একাধিক সেট থেকে সারিগুলো একসাথে এক ফলাফল সেট হিসেবে পেতে চান।
উদাহরণ
প্রথম টেবিল তৈরি
mysql> CREATE TABLE UnionDemo1 -> ( -> id int -> ); Query OK, 0 rows affected (0.59 sec)
প্রথম টেবিলে রেকর্ড ইনসার্ট:
mysql> INSERT INTO UnionDemo1 VALUES (1),(4),(10); Query OK, 3 rows affected (0.21 sec) Records: 3 Duplicates: 0 Warnings: 0
রেকর্ড দেখুন:
mysql> SELECT * FROM UnionDemo1;
আউটপুট:
+------+ | id | +------+ | 1 | | 4 | | 10 | +------+ 3 rows in set (0.00 sec)
দ্বিতীয় টেবিল তৈরি
mysql> CREATE TABLE UnionDemo2 -> ( -> id int -> ); Query OK, 0 rows affected (0.54 sec)
দ্বিতীয় টেবিলে রেকর্ড ইনসার্ট:
mysql> INSERT INTO UnionDemo2 VALUES (2),(3),(5),(6),(7),(8),(9); Query OK, 7 rows affected (0.21 sec) Records: 7 Duplicates: 0 Warnings: 0
রেকর্ড দেখুন:
mysql> SELECT * FROM UnionDemo2;
আউটপুট:
+------+ | id | +------+ | 2 | | 3 | | 5 | | 6 | | 7 | | 8 | | 9 | +------+ 7 rows in set (0.00 sec)
UNION WITH ORDER BY
mysql> SELECT id FROM UnionDemo1 -> UNION -> SELECT id FROM UnionDemo2 -> ORDER BY id DESC;
আউটপুট (অবর্ধমান ক্রমে):
+------+ | id | +------+ | 10 | | 9 | | 8 | | 7 | | 6 | | 5 | | 4 | | 3 | | 2 | | 1 | +------+ 10 rows in set (0.05 sec)
নোট: UNION ডিফল্টে ডুপ্লিকেট সরায় (DISTINCT)। ডুপ্লিকেট রাখতে UNION ALL ব্যবহার করুন (দ্রুত)। ORDER BY পুরো রেজাল্ট সেটের ওপর প্রয়োগ হয়। প্যারেনথেসিস দিয়ে প্রতিটি SELECT-এ আলাদা ORDER BY দেওয়া যায়।