MySQL यूनियन – सम्पूर्ण ट्यूटोरियल

संघ क्या है?

यूनियनें एकाधिक SELECT क्वेरीज़ के परिणामों को एक समेकित परिणाम सेट में संयोजित करती हैं।

इसके काम करने के लिए एकमात्र आवश्यकता यह है कि सभी SELECT क्वेरीज़ में कॉलमों की संख्या समान होनी चाहिए, जिन्हें संयोजित करने की आवश्यकता है।

मान लीजिए हमारे पास निम्नलिखित दो तालिकाएँ हैं

MySQL संघMySQL संघ

आइए अब 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