मूल रूप से, MySQL UNION ऑपरेटर का उपयोग 2 या अधिक SELECT स्टेटमेंट के परिणाम सेट को संयोजित करने के लिए किया जाता है। यह विभिन्न 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, … expression_n वे कॉलम हैं जिन्हें हम पुनर्प्राप्त करना चाहते हैं।
Table, वे तालिकाएँ हैं जिनसे हम रिकॉर्ड पुनर्प्राप्त करना चाहते हैं।
WHERE condition, यह वैकल्पिक है जिसे रिकॉर्ड चुने जाने के लिए पूरा किया जाना चाहिए।
DISTINCT, यह भी वैकल्पिक है जो परिणाम सेट से डुप्लिकेट को हटा देता है, लेकिन DISTINCT संशोधक के समावेश का UNION ऑपरेटर के परिणाम सेट पर कोई प्रभाव नहीं पड़ता क्योंकि डिफ़ॉल्ट रूप से UNION ऑपरेटर पहले से ही डुप्लिकेट को हटा देता है।
उदाहरण
इस उदाहरण में, हमारे पास दो तालिकाएँ हैं: 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 | +-----------+---------+------------+------------+ 7 rows in set (0.00 sec) 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 | +-----------+-----------+------------+-------------+ 6 rows in set (0.00 sec)
अब, UNION ऑपरेटर का उपयोग करने वाली निम्न क्वेरी दोनों तालिकाओं से सभी 'studentid' मान लौटाती है।
mysql> Select Studentid FROM student_detail UNION SELECT Studentid FROM student_info; +-----------+ | Studentid | +-----------+ | 101 | | 105 | | 130 | | 132 | | 133 | | 150 | | 160 | | 165 | +-----------+ 8 rows in set (0.00 sec)