जवाबों:
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)
UNION-JOIN
और मैं इसे मानक SQL में कैसे पूरा कर सकता हूं? मारिया डीबी के पास एक कमांड है union join
, लेकिन अन्य डेटाबेस नहीं हैं। धन्यवाद।
एक या अधिक तालिकाओं से डेटा को संयोजित करने के लिए जॉइन और यूनियन का उपयोग किया जा सकता है। अंतर यह है कि डेटा को कैसे जोड़ा जाता है।
सरल शब्दों में, डेटा को नए कॉलम में जोड़ देता है । यदि दो तालिकाओं को एक साथ जोड़ा जाता है, तो पहली तालिका के डेटा को एक ही पंक्ति में दूसरे तालिका के स्तंभ के साथ स्तंभ के एक सेट में दिखाया गया है।
यूनियनें नई पंक्तियों में डेटा को जोड़ती हैं। यदि दो तालिकाओं को एक साथ "संघबद्ध" किया जाता है, तो पहली तालिका का डेटा पंक्तियों के एक सेट में होता है, और दूसरे तालिका के डेटा को दूसरे सेट में। पंक्तियाँ उसी परिणाम में हैं।
इसमें शामिल होने का दृश्य चित्रण है। तालिका A और B के कॉलम एक ही परिणाम में संयुक्त हैं।
परिणाम में प्रत्येक पंक्ति में BOTH तालिका A और B. पंक्तियों से स्तंभ होते हैं जब एक तालिका दूसरे से स्तंभों से मेल खाती है। इस मैच को जॉइन कंडीशन कहा जाता है।
यह मूल्यों को देखने और परिणामों में उन्हें शामिल करने के लिए वास्तव में महान बनाता है। यह आम तौर पर निरूपण (सामान्यीकरण को उलट देने) का परिणाम है और इसमें एक तालिका में विदेशी कुंजी का उपयोग करके दूसरे में प्राथमिक कुंजी का उपयोग करके स्तंभ मानों को देखना शामिल है।
अब एक संघ के साथ उपरोक्त चित्रण की तुलना करें। एक संघ में परिणाम के भीतर प्रत्येक पंक्ति एक तालिका या दूसरे से होती है। एक संघ में, परिणाम बनाने के लिए कॉलम संयुक्त नहीं होते हैं, पंक्तियों को संयुक्त किया जाता है।
एक ही परिणाम में एक या अधिक तालिकाओं से डेटा को संयोजित करने के लिए दोनों जोड़ और यूनियनों का उपयोग किया जा सकता है। वे दोनों इस बारे में अलग-अलग तरीके हैं। जबकि एक मेज का उपयोग विभिन्न तालिकाओं से स्तंभों को संयोजित करने के लिए किया जाता है, संघ का उपयोग पंक्तियों को संयोजित करने के लिए किया जाता है।
यूनियन दो या दो से अधिक प्रश्नों के परिणामों को एक ही परिणाम सेट में जोड़ता है जिसमें सभी पंक्तियाँ शामिल होती हैं जो संघ के सभी प्रश्नों से संबंधित होती हैं।
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
सही है।
आप दोनों के लिए एक ही योजनाबद्ध स्पष्टीकरण देख सकते हैं, लेकिन ये पूरी तरह से भ्रमित करने वाले हैं।
यूनिअन के लिए:
JOIN के लिए:
विभिन्न तालिकाओं से समान या अलग नामों के साथ कॉलम प्रदर्शित करने के लिए एक जॉइन का उपयोग किया जाता है। प्रदर्शित आउटपुट में व्यक्तिगत रूप से दिखाए गए सभी कॉलम होंगे। यही है, स्तंभों को एक दूसरे के बगल में संरेखित किया जाएगा।
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
वे पूरी तरह से अलग चीजें हैं।
एक जुड़ाव आपको विभिन्न तालिकाओं में समान डेटा से संबंधित करने की अनुमति देता है।
एक संघ एक ही रिकॉर्डर के रूप में दो अलग-अलग प्रश्नों के परिणाम देता है।
एक या एक से अधिक तालिकाओं से डेटा को संयोजित करने के लिए जॉइन और यूनियनों का उपयोग किया जा सकता है। अंतर यह है कि डेटा को कैसे जोड़ा जाता है।
सरल शब्दों में, डेटा को नए कॉलम में जोड़ देता है। यदि दो तालिकाओं को एक साथ जोड़ा जाता है, तो पहली तालिका के डेटा को एक ही पंक्ति में दूसरे तालिका के स्तंभ के साथ स्तंभ के एक सेट में दिखाया गया है।
यूनियनों ने डेटा को नई पंक्तियों में संयोजित किया। यदि दो तालिकाओं को एक साथ "संघबद्ध" किया जाता है, तो पहली तालिका का डेटा पंक्तियों के एक सेट में, और दूसरे तालिका के डेटा को दूसरे सेट में होता है। पंक्तियाँ उसी परिणाम में हैं।
याद रखें कि संघ परिणाम ( सुनिश्चित करने के लिए 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
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 पर;
यूनिसन का उपयोग करना
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
अमूर्त में, वे समान हैं, जिसमें दो तालिकाओं या परिणाम सेटों को संयोजित किया जा रहा है, लेकिन UNION वास्तव में COLUMNS HAVING SIMILAR DATA TYPES के साथ समान संख्या के परिणाम सेट के संयोजन के लिए है। संरचना समान है, केवल नई पंक्तियों को जोड़ा जा रहा है।
जोड़ में, आप किसी भी संभावित संरचना के साथ तालिकाओं / परिणाम सेटों को जोड़ सकते हैं, जिसमें एक कार्टेशियन शामिल है जहां कोई साझा / समान कॉलम नहीं हैं।
मैं सामान्य अंतर के रूप में सोचना पसंद करता हूं: