सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि UNION
का उपयोग करके SQLite फुल आउटर जॉइन का अनुकरण कैसे करें और LEFT JOIN
खंड।
एसक्यूएल का परिचय FULL OUTER JOIN
खंड
सिद्धांत रूप में, FULL OUTER JOIN
. का परिणाम है एक LEFT JOIN
का संयोजन है और एक RIGHT JOIN
. पूर्ण बाहरी जुड़ाव के परिणाम सेट में NULL
है तालिका के प्रत्येक स्तंभ के लिए मान जिसमें अन्य तालिका में मेल खाने वाली पंक्ति नहीं है। मेल खाने वाली पंक्तियों के लिए, FULL OUTER JOIN
दोनों तालिकाओं में पंक्तियों के स्तंभों से मानों के साथ एक पंक्ति उत्पन्न करता है।
निम्न चित्र FULL OUTER JOIN
के परिणाम को दर्शाता है खंड:
निम्नलिखित देखें cats
और dogs
टेबल.
-- create and insert data into the dogs table
CREATE TABLE dogs (
type TEXT,
color TEXT
);
INSERT INTO dogs(type, color)
VALUES('Hunting','Black'), ('Guard','Brown');
-- create and insert data into the cats table
CREATE TABLE cats (
type TEXT,
color TEXT
);
INSERT INTO cats(type,color)
VALUES('Indoor','White'),
('Outdoor','Black');
Code language: SQL (Structured Query Language) (sql)
निम्नलिखित कथन FULL OUTER JOIN
का उपयोग करता है dogs
. से डेटा क्वेरी करने के लिए खंड और cats
टेबल.
SELECT *
FROM dogs
FULL OUTER JOIN cats
ON dogs.color = cats.color;
Code language: SQL (Structured Query Language) (sql)
निम्नलिखित उपरोक्त कथन का परिणाम दिखाता है:
टाइप करें | <थ>रंगप्रकार | <थ>रंग||
---|---|---|---|
शिकार | काला | आउटडोर | काला |
गार्ड | भूरा | शून्य | शून्य |
शून्य | शून्य | इनडोर | सफेद |
दुर्भाग्य से, SQLite RIGHT JOIN
का समर्थन नहीं करता है क्लॉज और FULL OUTER JOIN
खंड। हालांकि, आप आसानी से FULL OUTER JOIN
का अनुकरण कर सकते हैं LEFT JOIN
. का उपयोग करके खंड।
SQLite पूर्ण बाहरी जुड़ाव का अनुकरण करना
निम्नलिखित कथन FULL OUTER JOIN
का अनुकरण करता है SQLite में क्लॉज:
SELECT d.type,
d.color,
c.type,
c.color
FROM dogs d
LEFT JOIN cats c USING(color)
UNION ALL
SELECT d.type,
d.color,
c.type,
c.color
FROM cats c
LEFT JOIN dogs d USING(color)
WHERE d.color IS NULL;
Code language: SQL (Structured Query Language) (sql)
क्वेरी कैसे काम करती है।
- चूंकि SQLilte
RIGHT JOIN
का समर्थन नहीं करता है क्लॉज, हमLEFT JOIN
का उपयोग करते हैं दूसरे में खंडSELECT
इसके बजाय स्टेटमेंट औरcats
. की स्थिति बदलें औरdogs
टेबल. - द
UNION ALL
क्लॉज दोनों प्रश्नों के परिणाम सेट से डुप्लिकेट पंक्तियों को बरकरार रखता है। WHERE
दूसरे में खंडSELECT
कथन उन पंक्तियों को हटा देता है जो पहले से ही पहलेSELECT
. के परिणाम सेट में शामिल हैं बयान।
इस ट्यूटोरियल में, आपने सीखा है कि UNION ALL
. का उपयोग कैसे किया जाता है और LEFT JOIN
SQLite का अनुकरण करने के लिए क्लॉज FULL OUTER JOIN
खंड।