एसक्यूएल जॉइन

SQL join, दो या अधिक तालिकाओं के स्तम्भों के बीच के संबंध के अनुसार, उन तालिकाओं से डेटा का सर्वेक्षण करने के लिए है।

Join और Key

कभी-कभी पूरे परिणाम के लिए, हम दो या अधिक तालिकाओं से डेटा प्राप्त करना चाहते हैं। इसके लिए हमें join करना होगा।

डाटाबेस में तालिकाएं एक-दूसरे को कुंजी के द्वारा जोड़ी जा सकती हैं। मुख्य कुंजी (Primary Key) एक स्तम्भ है, जिसमें प्रत्येक पंक्ति का मान अद्वितीय होता है। तालिका में, प्रत्येक मुख्य कुंजी का मान अद्वितीय होता है। इसका उद्देश्य तालिकाओं के बीच डेटा को क्रॉस केपट करने के लिए यह किया जाता है, बिना तालिकाओं के सभी डेटा को दोहराने के।

अब "Persons" तालिका को देखिए:

Id_P LastName FirstName एड्रेस सिटी
1 एडम्स जॉन ऑक्सफोर्ड स्ट्रीट लंदन
2 बुश जॉर्ज फाईथ एवेन्यू न्यूयॉर्क
3 कार्टर थॉमस चांगान स्ट्रीट बीजिंग

कृपया ध्यान दें कि "Id_P" स्तम्भ Persons तालिका में मुख्य कुंजी है। इसका मतलब है कि कोई भी दो पंक्ति को एक-साथ Id_P से समान नहीं हो सकता है। यदि दो व्यक्ति के नाम पूरी तरह से एक-साथ हैं, तो भी Id_P उन्हें अलग-अलग कर सकता है。

अब "Orders" तालिका को देखिए:

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

कृपया ध्यान दें कि "Id_O" स्तम्भ Orders तालिका में मुख्य कुंजी है, साथ ही, "Orders" तालिका में "Id_P" स्तम्भ "Persons" तालिका में किसी व्यक्ति को उनके वास्तविक नाम के बजाय उदाहरण के लिए संदर्भित करता है。

ध्यान दें कि, "Id_P" स्तम्भ ऊपर की दो तालिकाओं को जोड़ता है।

दो तालिकाओं का संदर्भ

हम दो तालिकाओं को उदाहरण में संदर्भित करके दो तालिकाओं से डाटा प्राप्त कर सकते हैं:

कौन उत्पाद का आदेश दे रहा है, और वे क्या उत्पाद दे रहे हैं?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 

परिणाम सेट:

LastName FirstName OrderNo
एडम्स जॉन 22456
एडम्स जॉन 24562
कार्टर थॉमस 77895
कार्टर थॉमस 44678

SQL JOIN - JOIN का उपयोग करना

उपरोक्त तरीके के अलावा, हम जोड़ शब्दावली का उपयोग करके दो तालिकाओं से डाटा प्राप्त कर सकते हैं。

यदि हम सभी लोगों के आदेश को सूचीबद्ध करना चाहते हैं, तो नीचे दिए गए SELECT संग्रह का उपयोग कर सकते हैं:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

परिणाम सेट:

LastName FirstName OrderNo
एडम्स जॉन 22456
एडम्स जॉन 24562
कार्टर थॉमस 77895
कार्टर थॉमस 44678

विभिन्न SQL JOIN

उपरोक्त उदाहरण में INNER JOIN (अंतर्निहित) का उपयोग करके छोड़े, हम अन्य कई जोड़ने का उपयोग कर सकते हैं।

इसमें आप का उपयोग कर सकते हैं के JOIN प्रकारों को और उनके बीच के अंतर को सूचीबद्ध किया गया है。

  • JOIN: यदि पट्टी में कम से कम एक मेल होता है, तो पट्टियाँ वापस कर देता है
  • LEFT JOIN: दायां पट्टी में मेल न होने पर भी वाम पट्टी से सभी पट्टियाँ वापस कर देता है
  • RIGHT JOIN: वाम पट्टी में मेल न होने पर भी दायां पट्टी से सभी पट्टियाँ वापस कर देता है
  • FULL JOIN: केवल एक पट्टी में मेल होने वाला को वापस कर देता है