Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> SQL Server

SQL Server में JOIN

SQL Server में JOIN

SQL Server (Transact-SQL) में JOIN का उपयोग कई टेबल्स से डेटा पुनर्प्राप्त करने के लिए किया जाता है, जो तब होता है जब दो या अधिक टेबल्स एक SQL कमांड में एक साथ जुड़ी होती हैं। यहां SQL Server में 4 प्रकार के JOIN हैं:

  1. INNER JOIN - जिसे सरल कनेक्शन फॉर्म भी कहा जाता है
  2. LEFT OUTER JOIN - या LEFT JOIN
  3. RIGHT OUTER JOIN - या RIGHT JOIN
  4. FULL OUTER JOIN - या FULL JOIN

अब आइए JOIN को बेहतर ढंग से समझने के लिए सिंटैक्स, चित्रण और उदाहरण देखें।

INNER JOIN

सबसे अधिक संभावना है कि आपने कुछ कमांड्स में INNER JOIN का उपयोग किया है। यह सबसे सामान्य प्रकार का कनेक्शन है, जो कनेक्शन शर्तें पूरी होने पर टेबल्स से सभी पंक्तियां वापस करता है।

INNER JOIN सिंटैक्स

SELECT cot
FROM bang1
INNER JOIN bang2
ON bang1.cot = bang2.cot;

SQL Server में JOIN
INNER JOIN का चित्रण

वापस किया गया परिणाम bang1 और bang2 के बीच सामान्य रिकॉर्ड्स हैं।

INNER JOIN उदाहरण

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngay
FROM nhacung
INNER JOIN donhang
ON nhacung.nhacung_id = donhang.nhacung_id;

उपरोक्त उदाहरण में वापस किया गया परिणाम 'nhacung' टेबल और 'donhang' टेबल में सूचना की पंक्ति है जब nhacung_id का मान 2 टेबल्स में बराबर होता है।

आइए बेहतर समझने के लिए विशिष्ट डेटा के साथ एक उदाहरण देखें।

nhacung टेबल में 2 सूचना फ़ील्ड हैं: nhacung_id और nhacung_ten।

nhacung_idnhacung_ten
10000IBM
10001Hewlett Packard
10002Microsoft
10003NVIDIA

donhang टेबल में 3 फ़ील्ड्स हैं: donhang_id, nhacung_id और donhang_ngay।

donhang_idnhacung_iddonhang_ngay
500125100002003/05/12
500126100012003/05/13
500127100042003/05/14

यदि नीचे दिए गए SELECT कमांड को चलाएं (INNER JOIN का उपयोग करके):

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngay
FROM nhacung
INNER JOIN donhang
ON nhacung.nhacung_id = donhang.nhacung_id;

यह वापस किया गया परिणाम सेट है:

nhacung_idnhacung_tendonhang_ngay
10000IBM2003/05/12
10001Hewlett Packard2003/05/13

Microsoft और NVIDIA उत्पाद nhacung टेबल से हटा दिए गए हैं क्योंकि nhacung_id (10002 और 10003) केवल 1 टेबल में उपलब्ध है। donhang टेबल से पंक्ति 500127 (donhang_id) हटा दी गई है क्योंकि nhacung_id 10004 nhacung टेबल में नहीं है।

INNER JOIN का पुराना सिंटैक्स

INNER JOIN को पुराने सिंटैक्स के साथ नीचे पुनर्लिखित किया जा सकता है (लेकिन INNER JOIN कीवर्ड वाले सिंटैक्स का उपयोग करने की सिफारिश की जाती है)

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngay
FROM donhang, nhacung
WHERE nhacung.nhacung_id = donhang.nhacung_id;

LEFT OUTER JOIN

कुछ डेटाबेस LEFT OUTER JOIN के बजाय LEFT JOIN का उपयोग करते हैं। इस प्रकार का कनेक्शन ON कंडीशन में बाएं पैनल में पंक्तियों को वापस करता है और केवल शेष टेबल्स को लेता है जो सेट शर्तों को पूरा करते हैं।

LEFT JOIN सिंटैक्स

SELECT cot
FROM bang1
LEFT [OUTER] JOIN bang2
ON bang1.cot = bang2.cot;

SQL Server में JOIN
नीले क्षेत्र के परिणाम के रूप में LEFT JOIN चित्रण

वापस किया गया परिणाम bang1 और bang2 में स्थित रिकॉर्ड्स से बना होता है जो bang1 को असाइन किए गए हैं (चित्र में नीला क्षेत्र)।

LEFT JOIN उदाहरण

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngay
FROM nhacung
LEFT OUTER JOIN donhang
ON nhacung.nhacung_id = donhang.nhacung_id;

उपरोक्त उदाहरण nhacung टेबल से सभी पंक्तियों को वापस करेगा और केवल उन पंक्तियों को जो donhang टेबल में आवश्यकताओं को पूरा करती हैं। यदि nhacung टेबल में nhacung_id मान donhang टेबल में मौजूद नहीं है, तो donhang में सभी फ़ील्ड परिणाम टेबल में परिणाम प्रदर्शित करेंगे।

नीचे एक विशिष्ट उदाहरण है। टेबल में nhacung_id और nhacung_ten हैं।

nhacung_idnhacung_ten
10000IBM
10001Hewlett Packard
10002Microsoft
10003NVIDIA

Donhang टेबल में donhang_id, nhacung_id और donhang_ngay शामिल हैं।

donhang_idnhacung_iddonhang_ngay
500125100002003/05/12
500126100012003/05/13

यदि नीचे दिए गए SELECT कमांड को चलाएं:

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngay
FROM nhacung
LEFT OUTER JOIN donhang
ON nhacung.nhacung_id = donhang.nhacung_id;

परिणाम इस तरह होगा:

nhacung_idnhacung_tendonhang_ngay
10000IBM2003/05/12
10001Hewlett Packard2003/05/13
10002MicrosoftNULL
10003NVIDIANULL

Microsoft और NVIDIA पंक्तियां अभी भी परिणाम सेट में हैं क्योंकि वे LEFT OUTER JOIN का उपयोग कर रहे हैं (बाएं टेबल की सभी पंक्तियां प्राप्त करें)। इस बीच, इन रिकॉर्ड्स का donhang_ngay NULL होगा।

RIGHT OUTER JOIN

कुछ डेटाबेस RIGHT OUTER JOIN के बजाय RIGHT JOIN का उपयोग करते हैं। इस प्रकार का कनेक्शन ON कंडीशन में दाएं टेबल में पंक्तियों को वापस करता है और केवल शेष टेबल्स को लेता है जो सेट शर्तों को पूरा करते हैं।

RIGHT JOIN सिंटैक्स

SELECT cot
FROM bang1
RIGHT [OUTER] JOIN bang2
ON bang1.cot = bang2.cot;

SQL Server में JOIN
RIGHT JOIN चित्रण

वापस किया गया परिणाम bang2 और bang2 को असाइन किए गए bang1 में स्थित रिकॉर्ड्स को शामिल करता है (चित्र में नीला क्षेत्र)।

RIGHT JOIN उदाहरण

SELECT donhang.donhang_id, donhang.donhang_ngay, nhacung.nhacung_ten
FROM nhacung
RIGHT OUTER JOIN donhang
ON nhacung.nhacung_id = donhang.nhacung_id;

वापस किया गया परिणाम donhang टेबल में सभी पंक्तियां और केवल nhacung टेबल में आवश्यकताओं को पूरा करने वाली पंक्तियां हैं।

यदि donhang टेबल में nhacung_id मान nhacung टेबल में मौजूद नहीं है, तो nhacung में सभी फ़ील्ड परिणाम टेबल में दिखाई देंगे।

नीचे RIGHT OUTER JOIN का एक विशिष्ट उदाहरण है। टेबल में nhacung_id और nhacung_ten हैं।

nhacung_idnhacung_ten
10000Apple
10001Google

Donhang टेबल में donhang_id, nhacung_id और donhang_ngay शामिल हैं।

donhang_idnhacung_iddonhang_ngay
500125100002003/08/12
500126100012003/08/13
500127100022003/08/14

यदि नीचे दिए गए SELECT कमांड को चलाएं:

SELECT donhang.donhang_id, donhang.donhang_ngay, nhacung.nhacung_ten
FROM nhacung
RIGHT OUTER JOIN donhang
ON nhacung.nhacung_id = donhang.nhacung_id;

परिणाम इस तरह होगा:

donhang_iddonhang_ngaynhacung_ten
5001252003/08/12Apple
5001262003/08/13Google
5001272003/08/14NULL

पंक्ति 500127 (donhang_id) अभी भी परिणाम टेबल में है क्योंकि RIGHT OUTER JOIN उपयोग में है। ध्यान दें कि उस रिकॉर्ड के लिए nhacung_ten में NULL मान है।

FULL OUTER JOIN

कुछ डेटाबेस FULL OUTER JOIN के बजाय FULL JOIN का उपयोग करते हैं। यह कनेक्शन प्रकार बाएं और दाएं टेबल्स में सभी पंक्तियों को वापस करता है और उन शर्तों में NULL मान सेट करता है जो शर्तों को पूरा नहीं करते।

FULL JOIN सिंटैक्स

SELECT cot
FROM bang1
FULL [OUTER] JOIN bang2
ON bang1.cot = bang2.cot;

SQL Server में JOIN
हरे क्षेत्र के परिणाम के साथ FULL JOIN चित्रण

वापस किया गया परिणाम bang1 और bang2 से सभी रिकॉर्ड्स शामिल करता है।

FULL JOIN उदाहरण

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngay
FROM nhacung
FULL OUTER JOIN donhang
ON nhacung.nhacung_id = donhang.nhacung_id;

उपरोक्त उदाहरण nhacung टेबल और donhang टेबल से सभी पंक्तियों को वापस करेगा, लेकिन जब शर्त पूरी नहीं होती है, तो मान को परिणाम टेबल में NULL पर सेट किया जाएगा।

यदि nhacung टेबल में nhacung_id donhang टेबल में नहीं है, या donhang टेबल में nhacung_id मान nhacung टेबल में नहीं है, तो सूचना फ़ील्ड NULL प्रदर्शित होंगे।

नीचे FULL OUTER JOIN का एक विशिष्ट उदाहरण है। टेबल में nhacung_id और nhacung_ten हैं।

nhacung_idnhacung_ten
10000IBM
10001Hewlett Packard
10002Microsoft
10003NVIDIA

Donhang टेबल में donhang_id, nhacung_id और donhang_ngay शामिल हैं।

donhang_idnhacung_iddonhang_ngay
500125100002003/08/12
500126100012003/08/13
500127100042003/08/14

यदि नीचे दिए गए SELECT कमांड को चलाएं:

SELECT nhacung.nhacung_id, nhacung.nhacung_ten, donhang.donhang_ngay
FROM nhacung
FULL OUTER JOIN donhang
ON nhacung.nhacung_id = donhang.nhacung_id;

परिणाम इस तरह होगा:

nhacung_idnhacung_tendonhang_ngay
10000IBM2003/08/12
10001Hewlett Packard2003/08/13
10002MicrosoftNULL
10003NVIDIANULL
10004NULL2003/08/14

Microsoft और NVIDIA उत्पाद अभी भी परिणाम सेट में हैं क्योंकि वे FULL OUTER JOIN का उपयोग कर रहे हैं। फिर इन रिकॉर्ड्स का donhang_ngay NULL मान समाहित करता है। nhacung_id 10004 की पंक्ति भी परिणाम टेबल में है लेकिन इन रिकॉर्ड्स के nhacung_id और nhacung_ten NULL मान समाहित करते हैं।

  1. SQL Server में JOIN SQL Server में JOIN

    SQL Server में JOIN SQL Server (Transact-SQL) में JOIN का उपयोग कई टेबल्स से डेटा पुनर्प्राप्त करने के लिए किया जाता है, जो तब होता है जब दो या अधिक टेबल्स एक SQL कमांड में एक साथ जुड़ी होती हैं। यहां SQL Server में 4 प्रकार के JOIN हैं: INNER JOIN - जिसे सरल कनेक्शन फॉर्म भी कहा जाता है LEFT OUTER

  1. - SQL Server में FROM क्लॉज़

    SQL Server (T-SQL) में FROM क्लॉज़ SQL Server FROM क्लॉज़ का उपयोग SQL Server क्वेरी में आवश्यक तालिकाओं को सूचीबद्ध करने के लिए किया जाता है। FROM क्लॉज़ सिंटैक्स FROM bang1 [ { INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN | FULL OUTER JOIN } bang2 ON bang1.cot1 = bang2.cot1 ] चर नाम और चर मान

  1. - MS SQL Server क्या है?

    SQL Server क्या है? Microsoft द्वारा विकसित सॉफ़्टवेयर जो RDBMS पर आधारित है। यह एक ORDBMS (Object Relational Database Management System) भी है। एक स्वतंत्र प्लेटफ़ॉर्म। सॉफ़्टवेयर कमांड लाइन इंटरफेस और GUI इंटरफेस दोनों का उपयोग करता है। SQL भाषा समर्थन (पूर्व में SEQUEL - स्ट्रक्चर्ड इंग्लिश क्वे