MySQL UNION অপারেটর দুটি বা ততোধিক SELECT স্টেটমেন্টের ফলাফল সেট সংমিশ্রণ করতে ব্যবহৃত হয়। এটি ডুপ্লিকেট সারি সরিয়ে দেয়। UNION-এর প্রতিটি SELECT স্টেটমেন্টে একই সংখ্যক ফিল্ড এবং সাদৃশ্য ডেটা টাইপ থাকতে হয়।
সিনট্যাক্স
SELECT expression1, expression2, ... expression_n
FROM table [WHERE conditions]
UNION [DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM table [WHERE conditions]
প্যারামিটার:
- expression1, expression2, ... — রিট্রিভ করার কলামগুলো।
- table — রিকভার করার টেবিলগুলো।
- WHERE condition — অপশনাল, রেকর্ড সিলেকশনের শর্ত।
- DISTINCT — অপশনাল, ডুপ্লিকেট সরাতে ব্যবহৃত হয়। UNION ডিফল্টরূপে ডুপ্লিকেট সরিয়ে দেয়, তাই DISTINCT-এর কোনো অতিরিক্ত প্রভাব নেই।
উদাহরণ
দুই টেবিল: Student_detail এবং Student_info
mysql> SELECT * FROM Student_detail;
+-----------+---------+------------+------------+
| studentid | Name | Address | Subject |
+-----------+---------+------------+------------+
| 101 | YashPal | Amritsar | History |
| 105 | Gaurav | Chandigarh | Literature |
| 130 | Ram | Jhansi | Computers |
| 132 | Shyam | Chandigarh | Economics |
| 133 | Mohan | Delhi | Computers |
| 150 | Rajesh | Jaipur | Yoga |
| 160 | Pradeep | Kochi | Hindi |
+-----------+---------+------------+------------+
mysql> SELECT * FROM Student_info;
+-----------+-----------+------------+-------------+
| studentid | Name | Address | Subject |
+-----------+-----------+------------+-------------+
| 101 | YashPal | Amritsar | History |
| 105 | Gaurav | Chandigarh | Literature |
| 130 | Ram | Jhansi | Computers |
| 132 | Shyam | Chandigarh | Economics |
| 133 | Mohan | Delhi | Computers |
| 165 | Abhimanyu | Calcutta | Electronics |
+-----------+-----------+------------+-------------+
UNION দিয়ে দুটি টেবিলের studentid সংমিশ্রণ:
mysql> SELECT Studentid FROM student_detail
-> UNION SELECT Studentid FROM student_info;
+-----------+
| Studentid |
+-----------+
| 101 |
| 105 |
| 130 |
| 132 |
| 133 |
| 150 |
| 160 |
| 165 |
+-----------+
ফলাফলে ডুপ্লিকেট studentid মানগুলো (১০১, ১০৫, ১৩০, ১৩২, ১৩৩) শুধু একবার এসে আছে।