मूल रूप से, MySQL UNION ऑपरेटर का उपयोग 2 या अधिक SELECT स्टेटमेंट के परिणाम सेट को संयोजित करने के लिए किया जाता है। यह विभिन्न सेलेक्ट स्टेटमेंट के बीच डुप्लिकेट पंक्तियों को हटाता है। यूनियन ऑपरेटर के भीतर प्रत्येक चयन कथन में समान डेटा प्रकारों के परिणाम सेट में फ़ील्ड की समान संख्या होनी चाहिए। इसका सिंटैक्स इस प्रकार होगा -
सिंटैक्स
SELECT expression1, expression2, … expression_n FROM table [WHERE conditions] UNION [DISTINCT] SELECT expression1, expression2, … expression_n FROM table [WHERE conditions]
यहाँ, अभिव्यक्ति1, अभिव्यक्ति2,…अभिव्यक्ति_n वे कॉलम हैं जिन्हें हम पुनः प्राप्त करना चाहते हैं।
टेबल, वे तालिकाएँ हैं जिनसे हम अभिलेखों को पुनः प्राप्त करना चाहते हैं।
कहां स्थिति, यह वैकल्पिक है जिसे चुने जाने वाले रिकॉर्ड के लिए पूरा किया जाना चाहिए।
DISTINCT, यह वैकल्पिक भी है जो परिणाम सेट से डुप्लिकेट को हटा देता है, लेकिन DISTINCT संशोधक को शामिल करने से UNION ऑपरेटर के परिणाम सेट पर कोई प्रभाव नहीं पड़ता है क्योंकि डिफ़ॉल्ट रूप से UNION ऑपरेटर पहले से ही डुप्लिकेट को हटा देता है।
उदाहरण
इस उदाहरण में, हम दो टेबल हैं जिनका नाम स्टूडेंट_डिटेल और स्टूडेंट_इन्फो है जिसमें निम्नलिखित डेटा है -
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 ऑपरेटर का उपयोग करके निम्न क्वेरी सभी 'छात्र' मान दोनों तालिकाओं को लौटाती है।
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)