JOIN और UNION में क्या अंतर है?


252

बीच क्या अंतर है JOINऔर UNION? क्या मेरे पास एक उदाहरण हो सकता है?


किसी भी आधुनिक डीबीएस, जैसे कि मारबीडीबी , एक यूनिअन जॉय कमांड को लागू करता है। यह एक SQL & nbsp; 3 कमांड है, लेकिन यह अच्छी तरह से ज्ञात या उपयोग नहीं किया गया है। UNION JOIN पर और जानें ।
ऑस्टिन

जवाबों:


301

UNIONएक दूसरे के बाद प्रश्नों से लाइनें डालते हैं, जबकि JOINएक कार्टेशियन उत्पाद बनाते हैं और इसे सब्मिट करते हैं - पूरी तरह से अलग संचालन। का सामान्य उदाहरण UNION:

mysql> SELECT 23 AS bah
    -> UNION
    -> SELECT 45 AS bah;
+-----+
| bah |
+-----+
|  23 | 
|  45 | 
+-----+
2 rows in set (0.00 sec)

अनुकरणीय तुच्छ उदाहरण JOIN:

mysql> SELECT * FROM 
    -> (SELECT 23 AS bah) AS foo 
    -> JOIN 
    -> (SELECT 45 AS bah) AS bar
    -> ON (33=33);
+-----+-----+
| foo | bar |
+-----+-----+
|  23 |  45 | 
+-----+-----+
1 row in set (0.01 sec)

6
क्या आप मुझे बता सकते हैं कि क्या है UNION-JOINऔर मैं इसे मानक SQL में कैसे पूरा कर सकता हूं? मारिया डीबी के पास एक कमांड है union join, लेकिन अन्य डेटाबेस नहीं हैं। धन्यवाद।
इरान मोराद

72

एक या अधिक तालिकाओं से डेटा को संयोजित करने के लिए जॉइन और यूनियन का उपयोग किया जा सकता है। अंतर यह है कि डेटा को कैसे जोड़ा जाता है।

सरल शब्दों में, डेटा को नए कॉलम में जोड़ देता है । यदि दो तालिकाओं को एक साथ जोड़ा जाता है, तो पहली तालिका के डेटा को एक ही पंक्ति में दूसरे तालिका के स्तंभ के साथ स्तंभ के एक सेट में दिखाया गया है।

यूनियनें नई पंक्तियों में डेटा को जोड़ती हैं। यदि दो तालिकाओं को एक साथ "संघबद्ध" किया जाता है, तो पहली तालिका का डेटा पंक्तियों के एक सेट में होता है, और दूसरे तालिका के डेटा को दूसरे सेट में। पंक्तियाँ उसी परिणाम में हैं।

इसमें शामिल होने का दृश्य चित्रण है। तालिका A और B के कॉलम एक ही परिणाम में संयुक्त हैं।

यहां छवि विवरण दर्ज करें

परिणाम में प्रत्येक पंक्ति में BOTH तालिका A और B. पंक्तियों से स्तंभ होते हैं जब एक तालिका दूसरे से स्तंभों से मेल खाती है। इस मैच को जॉइन कंडीशन कहा जाता है।

यह मूल्यों को देखने और परिणामों में उन्हें शामिल करने के लिए वास्तव में महान बनाता है। यह आम तौर पर निरूपण (सामान्यीकरण को उलट देने) का परिणाम है और इसमें एक तालिका में विदेशी कुंजी का उपयोग करके दूसरे में प्राथमिक कुंजी का उपयोग करके स्तंभ मानों को देखना शामिल है।

अब एक संघ के साथ उपरोक्त चित्रण की तुलना करें। एक संघ में परिणाम के भीतर प्रत्येक पंक्ति एक तालिका या दूसरे से होती है। एक संघ में, परिणाम बनाने के लिए कॉलम संयुक्त नहीं होते हैं, पंक्तियों को संयुक्त किया जाता है।

यहां छवि विवरण दर्ज करें

एक ही परिणाम में एक या अधिक तालिकाओं से डेटा को संयोजित करने के लिए दोनों जोड़ और यूनियनों का उपयोग किया जा सकता है। वे दोनों इस बारे में अलग-अलग तरीके हैं। जबकि एक मेज का उपयोग विभिन्न तालिकाओं से स्तंभों को संयोजित करने के लिए किया जाता है, संघ का उपयोग पंक्तियों को संयोजित करने के लिए किया जाता है।

स्रोत


4
यह एक भयानक दृश्य उदाहरण है। मुझे पूरा यकीन था कि मैं दूसरे उत्तरों के बाद समझ गया था, लेकिन इसने इसे पूरी तरह से साफ कर दिया।
seadoggie01

सम्मिलित उदाहरण के लिए, तकनीकी रूप से, परिणाम के लिए 10 कॉलम की तरह नहीं होना चाहिए?
भरत राम

60

यूनियन दो या दो से अधिक प्रश्नों के परिणामों को एक ही परिणाम सेट में जोड़ता है जिसमें सभी पंक्तियाँ शामिल होती हैं जो संघ के सभी प्रश्नों से संबंधित होती हैं।

JOINs का उपयोग करके , आप तालिकाओं के बीच तार्किक संबंधों के आधार पर दो या अधिक तालिकाओं से डेटा पुनर्प्राप्त कर सकते हैं। जुड़ने से संकेत मिलता है कि SQL को किसी तालिका में पंक्तियों का चयन करने के लिए एक तालिका से डेटा का उपयोग कैसे करना चाहिए।

UNION ऑपरेशन JOINs के उपयोग से अलग है जो दो तालिकाओं से स्तंभों को जोड़ती है।

यूनिअन उदाहरण:

SELECT 1 AS [Column1], 2 AS [Column2]
UNION
SELECT 3 AS [Column1], 4 AS [Column2]

आउटपुट:

Column1    Column2
-------------------
1          2
3          4

जोइन उदाहरण:

SELECT a.Column1, b.Column2 FROM TableA a INNER JOIN TableB b ON a.Id = b.AFKId

यह दोनों तालिकाओं से सभी पंक्तियों को आउटपुट करेगा जिसके लिए स्थिति a.Id = b.AFKIdसही है।


सम्मिलित हों डेटा को एक * या अधिक तालिकाओं से पुनर्प्राप्त कर सकते हैं। जरूरी नहीं कि दो
केनेट सेलेस्टे

51

आप दोनों के लिए एक ही योजनाबद्ध स्पष्टीकरण देख सकते हैं, लेकिन ये पूरी तरह से भ्रमित करने वाले हैं।

यूनिअन के लिए:

यहां छवि विवरण दर्ज करें

JOIN के लिए:

यहां छवि विवरण दर्ज करें


9
इन छवियों का अर्थ है कि FULL OUTER JOINयह वैसा ही है UNION, जिसमें अंतर होता है
icc97

1
यह उत्तर बताता है कि वे चित्र भ्रामक हैं (वे कौन से IMO हैं) लेकिन फिर यह बताने के लिए नहीं जाते कि मूल प्रश्न के प्रति कोई स्पष्टीकरण क्यों या प्रदान किया गया है।
जोश डी।

1
चित्र के साथ प्रत्येक छवि पूरी तरह से स्थिति की व्याख्या करती है। सभी आरेखों को मर्ज करने की तुलना में कोई एकल छवि नहीं है। यह अधिक भ्रामक होगा।
जावा मेन

41

शामिल हों:

विभिन्न तालिकाओं से समान या अलग नामों के साथ कॉलम प्रदर्शित करने के लिए एक जॉइन का उपयोग किया जाता है। प्रदर्शित आउटपुट में व्यक्तिगत रूप से दिखाए गए सभी कॉलम होंगे। यही है, स्तंभों को एक दूसरे के बगल में संरेखित किया जाएगा।

यूनिअन:

UNION सेट ऑपरेटर का उपयोग दो तालिकाओं के डेटा के संयोजन के लिए किया जाता है जिसमें समान डेटाटाइप के साथ कॉलम होते हैं। जब एक UNION का प्रदर्शन किया जाता है, तो दोनों तालिका के डेटा को एक ही कॉलम में एकत्र किया जाएगा जिसमें समान डेटाटाइप होगा।

उदाहरण के लिए:

नीचे दिखाए गए दो टेबल देखें:

Table t1
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2

Table t2
manufacturer_id manufacturer
1 ABC Gmbh
2 DEF Co KG

अब JOIN टाइप करने के लिए नीचे क्वेरी दिखाई गई है।

SELECT articleno, article, manufacturer
FROM t1 JOIN t2 ON (t1.manufacturer_id =
t2.manufacturer_id);

articelno article manufacturer
1 hammer ABC GmbH
2 screwdriver DEF Co KG

वह एक जुड़ाव है।

UNION का मतलब है कि आपको एक ही राशि और प्रकार के कॉलम के साथ टेबल या परिणामसेट करना है और आप इसे टेबल / परिणाम के साथ जोड़ते हैं। इस उदाहरण को देखें:

Table year2006
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2

Table year2007
Articleno article price manufacturer_id
1 hammer 6 $ 3
2 screwdriver 7 $ 4

SELECT articleno, article, price, manufactruer_id
FROM year2006
UNION
SELECT articleno, article, price, manufacturer_id
FROM year2007

articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
1 hammer 6 $ 3
2 screwdriver 7 $ 4

21

वे पूरी तरह से अलग चीजें हैं।

एक जुड़ाव आपको विभिन्न तालिकाओं में समान डेटा से संबंधित करने की अनुमति देता है।

एक संघ एक ही रिकॉर्डर के रूप में दो अलग-अलग प्रश्नों के परिणाम देता है।


9

संघ दो प्रश्नों को एक जैसा बनाता है। जॉइन एक एकल क्वेरी स्टेटमेंट में दो या अधिक टेबल की जांच के लिए हैं


3

एक या एक से अधिक तालिकाओं से डेटा को संयोजित करने के लिए जॉइन और यूनियनों का उपयोग किया जा सकता है। अंतर यह है कि डेटा को कैसे जोड़ा जाता है।

सरल शब्दों में, डेटा को नए कॉलम में जोड़ देता है। यदि दो तालिकाओं को एक साथ जोड़ा जाता है, तो पहली तालिका के डेटा को एक ही पंक्ति में दूसरे तालिका के स्तंभ के साथ स्तंभ के एक सेट में दिखाया गया है।

यूनियनों ने डेटा को नई पंक्तियों में संयोजित किया। यदि दो तालिकाओं को एक साथ "संघबद्ध" किया जाता है, तो पहली तालिका का डेटा पंक्तियों के एक सेट में, और दूसरे तालिका के डेटा को दूसरे सेट में होता है। पंक्तियाँ उसी परिणाम में हैं।


1

याद रखें कि संघ परिणाम ( सुनिश्चित करने के लिए SQL सर्वर ) (सुविधा या बग?) को मर्ज करेगा

select 1 as id, 3 as value
union
select 1 as id, 3 as value

आईडी, मूल्य

1,3

select * from (select 1 as id, 3 as value) t1 inner join (select 1 as id, 3 as value) t2 on t1.id = t2.id

आईडी, मूल्य, आईडी, मूल्य

1,3,1,3


6
यह एएनएसआई मानक के अनुसार है, यूनिअन ऑल ने परिणामों को मर्ज नहीं किया है
vzczc

1
यह भी देखें UNIONबनाम UNION ALL stackoverflow.com/questions/49925/...
Jaider

0

1. SQL जॉइंट क्लॉज का उपयोग डेटाबेस में दो या अधिक टेबल से रिकॉर्ड को संयोजित करने के लिए किया जाता है। एक JOIN प्रत्येक के लिए समान मूल्यों का उपयोग करके दो तालिकाओं से फ़ील्ड के संयोजन के लिए एक साधन है।

2. SQL UNION ऑपरेटर दो या दो से अधिक चयनित बयानों के परिणाम को जोड़ता है। यूनिअन के भीतर प्रत्येक सेलेक्ट स्टेटमेंट में समान संख्या में कॉलम होने चाहिए। कॉलम में समान डेटा प्रकार भी होने चाहिए। साथ ही, प्रत्येक SELECT स्टेटमेंट में कॉलम एक ही क्रम में होना चाहिए।

उदाहरण के लिए: तालिका 1 ग्राहक / तालिका 2 आदेश

आंतरिक रूप से जुड़ा:

ID, NAME, AMOUNT, DATE का चयन करें

ग्राहकों से


ININ JOIN ORDERS


CUSTOMERS.ID = ORDERS.CUSTOMER_ID पर;

संघ:

ID, NAME, AMOUNT, DATE का चयन करें


ग्राहकों से


बाईं ओर आदेश


CUSTOMERS.ID = ORDERS.CUSTOMER_ID पर

यूनिअन

ID, NAME, AMOUNT, ग्राहकों से दिनांक का चयन करें


राइट आदेश शामिल हैं


CUSTOMERS.ID = ORDERS.CUSTOMER_ID पर;


0

यूनिसन का उपयोग करना

UNION दो या दो से अधिक प्रश्नों के परिणामों को एक ही परिणाम सेट में जोड़ती है जिसमें सभी पंक्तियाँ शामिल होती हैं जो संघ के सभी प्रश्नों से संबंधित होती हैं।

यूनिअन उदाहरण:
121 AS का चयन करें [Column1], 221 AS [Column2]
यूनिअन
321 AS [Column1], 422 AS [Column2] का चयन करें
आउटपुट:

कॉलम 1 कॉलम 2
-------------------
121 221
321 422

JOINs का उपयोग

JOINs, आप तालिकाओं के बीच तार्किक संबंधों के आधार पर दो या अधिक तालिकाओं से डेटा पुनर्प्राप्त कर सकते हैं।

जोइन उदाहरण:
A.Column1, b.Column2 से TblA का चयन करें एक INNER शामिल करें TblB b पर a.Id = b.id


-1

अमूर्त में, वे समान हैं, जिसमें दो तालिकाओं या परिणाम सेटों को संयोजित किया जा रहा है, लेकिन UNION वास्तव में COLUMNS HAVING SIMILAR DATA TYPES के साथ समान संख्या के परिणाम सेट के संयोजन के लिए है। संरचना समान है, केवल नई पंक्तियों को जोड़ा जा रहा है।

जोड़ में, आप किसी भी संभावित संरचना के साथ तालिकाओं / परिणाम सेटों को जोड़ सकते हैं, जिसमें एक कार्टेशियन शामिल है जहां कोई साझा / समान कॉलम नहीं हैं।


-1

UNION ऑपरेटर सिर्फ दो या अधिक सेलेक्ट स्टेटमेंट्स के संयोजन के लिए है।

जबकि JOIN प्रत्येक तालिका से पंक्तियों का चयन करने के लिए है, या तो आंतरिक, बाहरी, बाएँ या दाएँ विधि द्वारा।

यहाँ और यहाँ देखें । उदाहरणों के साथ एक बेहतर व्याख्या है।


-1

यूनियन ऑपरेशन पंक्तियों के वर्टिकल एग्रीगेट का संयुक्त परिणाम है, यूनियन ऑपरेशन कॉलम के क्षैतिज एग्रीगेट का संयुक्त परिणाम है ।


-3

मैं सामान्य अंतर के रूप में सोचना पसंद करता हूं:

  • जॉइन टेबल में शामिल होते हैं
  • UNION (एट ऑल) क्वेरीज़ को जोड़ती है।

1
यह सवाल पूछता है - जुड़ने का उल्लेख "जॉइन" के रूप में किया गया है और संघ का उल्लेख अस्पष्ट "जोड़ती" के रूप में किया गया है। वैसे भी आपको क्या लगता है कि आप अन्य अति-मत वाले 10-वर्षीय उत्तरों से परे होंगे जो इसे "उपयोगी" बनाता है? (बयानबाजी।) वोटिंग एरो माउसओवर टेक्स्ट देखें।
फिलिप्पिक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.