सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि 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 खंड।