MySQL यूनियन – सम्पूर्ण ट्यूटोरियल
संघ क्या है?
यूनियनें एकाधिक SELECT क्वेरीज़ के परिणामों को एक समेकित परिणाम सेट में संयोजित करती हैं।
इसके काम करने के लिए एकमात्र आवश्यकता यह है कि सभी SELECT क्वेरीज़ में कॉलमों की संख्या समान होनी चाहिए, जिन्हें संयोजित करने की आवश्यकता है।
मान लीजिए हमारे पास निम्नलिखित दो तालिकाएँ हैं
आइए अब DISTINCT का उपयोग करके दोनों तालिकाओं को संयोजित करने के लिए UNION क्वेरी बनाएं
SELECT column1, column2 FROM `table1` UNION DISTINCT SELECT column1,column2 FROM `table2`;
यहां डुप्लिकेट पंक्तियां हटा दी जाती हैं और केवल अद्वितीय पंक्तियां लौटाई जाती हैं।
नोट: MySQL यदि कुछ निर्दिष्ट नहीं किया गया है तो UNION क्वेरीज़ निष्पादित करते समय DISTINCT क्लॉज़ को डिफ़ॉल्ट के रूप में उपयोग करता है।
आइए अब ALL का उपयोग करके दोनों तालिकाओं को संयोजित करने के लिए एक UNION क्वेरी बनाएं
SELECT `column1`,` column1` FROM `table1` UNION ALL SELECT ` column1`,` column1` FROM `table2`;
यहां डुप्लिकेट पंक्तियां शामिल हैं और चूंकि हम ALL का उपयोग करते हैं।
यूनियनों का उपयोग क्यों करें?
मान लीजिए कि आपके डेटाबेस डिज़ाइन में कोई खामी है और आप एक ही उद्देश्य के लिए दो अलग-अलग टेबल का उपयोग कर रहे हैं। आप इन दो टेबल को एक में एकीकृत करना चाहते हैं, जबकि किसी भी डुप्लिकेट रिकॉर्ड को नई टेबल में आने से रोकना चाहते हैं। आप ऐसे मामलों में UNION का उपयोग कर सकते हैं।
सारांश
- UNION कमांड का उपयोग एक से अधिक SELECT क्वेरी परिणामों को एक एकल क्वेरी में संयोजित करने के लिए किया जाता है, जिसमें सभी चयनित क्वेरीज़ की पंक्तियाँ शामिल होती हैं।
- कॉलमों की संख्या और डेटा प्रकार चयन कथन UNION कमांड के काम करने के लिए ये सभी समान होने चाहिए।
- DISTINCT क्लॉज़ का उपयोग UNION क्वेरी परिणाम सेट से डुप्लिकेट मानों को हटाने के लिए किया जाता है। MySQL यदि कुछ निर्दिष्ट नहीं किया गया है तो UNION क्वेरीज़ को निष्पादित करते समय DISTINCT क्लॉज़ को डिफ़ॉल्ट के रूप में उपयोग करता है।
- ALL क्लॉज़ का उपयोग UNION क्वेरी में सभी डुप्लिकेट पंक्तियों को वापस करने के लिए किया जाता है।
व्यावहारिक उदाहरणों का उपयोग MySQL कार्यक्षेत्र
हमारे myFlixDB में चलो गठबंधन
सदस्य तालिका से membership_number और full_names
साथ में
मूवीज़ तालिका से मूवी_आईडी और शीर्षक
हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं
SELECT `membership_number`,`full_names` FROM `members` UNION SELECT `movie_id`,`title` FROM `movies`;
उपरोक्त स्क्रिप्ट को निष्पादित करना MySQL कार्यक्षेत्र myflixdb के विरुद्ध हमें नीचे दिखाए गए निम्नलिखित परिणाम मिलते हैं।
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 |