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

MySQL में LEFT OUTER JOIN का उपयोग करके दो टेबल की तुलना करें और गायब ID ढूंढें


MySQL में LEFT OUTER JOIN से गायब ID ढूंढना

एक टेबल में मौजूद लेकिन दूसरी टेबल में गायब ID ढूंढने के लिए LEFT OUTER JOIN के साथ WHERE ... IS NULL का उपयोग करें।

उदाहरण

पहली टेबल (First_Table):

mysql> create table First_Table (Id int);
mysql> insert into First_Table values(1), (2), (3), (4);

दूसरी टेबल (Second_Table):

mysql> create table Second_Table (Id int);
mysql> insert into Second_Table values(2), (4);

गायब ID ढूंढें (First_Table में हैं लेकिन Second_Table में नहीं):

mysql> SELECT First_Table.Id FROM First_Table
    -> LEFT OUTER JOIN Second_Table ON First_Table.Id = Second_Table.Id
    -> WHERE Second_Table.Id IS NULL;

परिणाम:

+------+
| Id   |
+------+
|    1 |
|    3 |
+------+

कैसे काम करता है

  1. LEFT JOIN: First_Table की सभी पंक्तियाँ रखता है, मेल न होने पर Second_Table कॉलम NULL होते हैं
  2. WHERE Second_Table.Id IS NULL: केवल वे पंक्तियाँ जहाँ मेल नहीं मिला

वैकल्पिक विधियाँ

-- NOT IN (NULL मान होने पर सावधानी)
SELECT Id FROM First_Table WHERE Id NOT IN (SELECT Id FROM Second_Table);

-- NOT EXISTS (अक्सर बेहतर प्रदर्शन)
SELECT Id FROM First_Table f WHERE NOT EXISTS (SELECT 1 FROM Second_Table s WHERE s.Id = f.Id);

-- EXCEPT (MySQL 8.0+ नहीं, लेकिन MariaDB में)
SELECT Id FROM First_Table EXCEPT SELECT Id FROM Second_Table;

सिमेट्रिक डिफरेंस (दोनों तरफ गायब)

SELECT Id FROM First_Table WHERE Id NOT IN (SELECT Id FROM Second_Table)
UNION
SELECT Id FROM Second_Table WHERE Id NOT IN (SELECT Id FROM First_Table);
  1. - MySQL में INSERT INTO SELECT UNION ALL से एक क्वेरी में दो टेबल में चयन और सम्मिलन

    MySQL में INSERT INTO ... SELECT ... UNION ALL ... SELECT का उपयोग करके एक ही क्वेरी में एक टेबल से डेटा चुनकर दूसरी टेबल में एकाधिक पंक्तियां डाल सकते हैं। उदाहरण 1. लक्ष्य टेबल बनाएं ); 2. स्रोत टेबल बनाएं INSERT INTO DemoTable2 VALUES(Chris); 3. एक क्वेरी में चयन और सम्मिलन SELECT Name, 98

  1. - LEFT, RIGHT और FULL OUTER JOIN में अंतर

    इस लेख में LEFT OUTER JOIN, RIGHT OUTER JOIN और FULL OUTER JOIN के बीच अंतर समझाया गया है। LEFT OUTER JOIN बाएं टेबल की **सभी पंक्तियाँ** लाता है। INNER JOIN + बाएं टेबल की सभी अमेल खाने वाली पंक्तियाँ के समान। दाएं टेबल पर न मिलने वाला डेटा खो जाता है (NULL से भरा जाता है)। SELECT column_1, colu

  1. - Python में MySQL का उपयोग करके दो टेबल पर लेफ्ट जॉइन करना

    हम SQL में दो टेबल को उनके बीच एक सामान्य कॉलम के आधार पर या किसी निर्दिष्ट शर्त के आधार पर जोड़ सकते हैं। दो SQL टेबल को जोड़ने के लिए विभिन्न प्रकार के JOIN उपलब्ध हैं। यहां हम दो टेबल पर LEFT JOIN के बारे में चर्चा करेंगे। LEFT JOIN में, पहली टेबल या लेफ्ट टेबल के सभी रिकॉर्ड हमेशा परिणाम में शा