एसक्यूएल जॉइन
- पिछला पृष्ठ SQL Aliases
- अगला पृष्ठ SQL Inner Join
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: केवल एक पट्टी में मेल होने वाला को वापस कर देता है
- पिछला पृष्ठ SQL Aliases
- अगला पृष्ठ SQL Inner Join