संघ क्या है?
यूनियनों ने कई चयनित प्रश्नों के परिणामों को एक समेकित परिणाम सेट में संयोजित किया।
इसके लिए काम करने की एकमात्र आवश्यकता यह है कि सभी चयनित प्रश्नों से कॉलम की संख्या समान होनी चाहिए, जिन्हें संयोजित करने की आवश्यकता है।
मान लीजिए कि हमारे पास दो तालिकाएँ हैं
चलिए अब DISTINCT का उपयोग करके दोनों तालिकाओं को मिलाने के लिए एक UNION क्वेरी बनाते हैं
SELECT column1, column2 FROM `table1`UNION DISTINCTSELECT column1,column2 FROM `table2`;
यहां डुप्लिकेट पंक्तियाँ हटा दी जाती हैं और केवल अनन्य पंक्तियाँ वापस कर दी जाती हैं।
नोट: यदि कुछ निर्दिष्ट नहीं है, तो MySQL यूनिस्ट प्रश्नों को निष्पादित करते समय DISTINCT क्लॉज को डिफ़ॉल्ट के रूप में उपयोग करता है।
आइए अब सभी का उपयोग करके दोनों तालिकाओं को मिलाने के लिए एक UNION क्वेरी बनाएं
SELECT `column1`,` column1` FROM `table1`UNION ALLSELECT ` column1`,` column1` FROM `table2`;
यहाँ डुप्लिकेट पंक्तियाँ शामिल हैं और चूंकि हम सभी का उपयोग करते हैं।
यूनियनों का उपयोग क्यों करें
मान लीजिए कि आपके डेटाबेस डिजाइन में कोई दोष है और आप एक ही उद्देश्य के लिए दो अलग-अलग तालिकाओं का उपयोग कर रहे हैं। नई तालिका में रेंगने से किसी भी डुप्लिकेट रिकॉर्ड को छोड़ते हुए आप इन दो तालिकाओं को एक में समेकित करना चाहते हैं। आप ऐसे मामलों में UNION का उपयोग कर सकते हैं।
सारांश
- UNION कमांड का उपयोग एक ही क्वेरी में एक से अधिक चयन क्वेरी परिणामों को संयोजित करने के लिए किया जाता है जिसमें सभी चुनिंदा क्वेरी से पंक्तियाँ होती हैं।
- काम के बयानों में कॉलम और डेटा प्रकारों की संख्या UNION कमांड के काम करने के लिए समान होनी चाहिए।
- DISTINCT क्लाज का उपयोग UNION क्वेरी परिणाम सेट से डुप्लिकेट मानों को समाप्त करने के लिए किया जाता है। यदि कुछ निर्दिष्ट नहीं है, तो MySQL UNION प्रश्नों को निष्पादित करते समय DISTINCT क्लॉज को डिफ़ॉल्ट के रूप में उपयोग करता है।
- ALL क्लॉज का उपयोग UNION क्वेरी में सभी डुप्लिकेट पंक्तियों को वापस करने के लिए किया जाता है।
MySQL कार्यक्षेत्र का उपयोग करके व्यावहारिक उदाहरण
हमारे myFlixDB में संयोजन की सुविधा देता है
मेंबरशिप टेबल से सदस्यता_नंबर और फुल_नाम
साथ से
मूवी टेबल से movie_id और शीर्षक
हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं
SELECT `membership_number`,`full_names` FROM `members`UNIONSELECT `movie_id`,`title` FROM `movies`;
Myflixdb के खिलाफ MySQL कार्यक्षेत्र में उपरोक्त स्क्रिप्ट को निष्पादित करने से हमें नीचे दिखाए गए निम्न परिणाम मिलते हैं।
membership_number | full_names |
---|---|
1 | Janet Jones |
2 | Janet Smith Jones |
3 | Robert Phil |
4 | Gloria Williams |
5 | Leonard Hofstadter |
6 | Sheldon Cooper |
7 | Rajesh Koothrappali |
8 | Leslie Winkle |
9 | Howard Wolowitz |
16 | 67% Guilty |
6 | Angels and Demons |
4 | Code Name Black |
5 | Daddy's Little Girls |
7 | Davinci Code |
2 | Forgetting Sarah Marshal |
9 | Honey mooners |
19 | movie 3 |
1 | Pirates of the Caribean 4 |
18 | sample movie |
17 | The Great Dictator |
3 | X-Men |