SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite पूर्ण बाहरी जॉइन अनुकरण

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आईडी का उपयोग करके एकाधिक पंक्तियां हटाएं?

  2. SQLite DATEADD () समतुल्य

  3. Android में स्क्लाइट संग्रहित प्रक्रिया का उपयोग

  4. SQLite में NULL को "N/A" से बदलने के 3 तरीके

  5. SQLite में किसी मौजूदा तालिका से तालिका स्क्रिप्ट बनाने के 3 तरीके