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

MySQL में दो टेबल्स की तुलना करके गायब IDs कैसे खोजें?

NOT IN सबक्वेरी के साथ गायब IDs खोजना

दो टेबल्स की तुलना करके पहली टेबल में मौजूद लेकिन दूसरी में गायब IDs खोजने के लिए:

SELECT first_table.id_column 
FROM first_table 
WHERE first_table.id_column NOT IN (
    SELECT second_table.id_column FROM second_table
);

उदाहरण: दो टेबल्स बनाना

mysql> CREATE TABLE First_Table (Id INT);
mysql> INSERT INTO First_Table VALUES(1),(2),(3),(4);
mysql> CREATE TABLE Second_Table (Id INT);
mysql> INSERT INTO Second_Table VALUES(2),(4);

टेबल्स का डेटा

First_Table:  1, 2, 3, 4
Second_Table: 2, 4

गायब IDs खोजने की क्वेरी

mysql> SELECT First_Table.Id 
    -> FROM First_Table 
    -> WHERE First_Table.Id NOT IN (SELECT Second_Table.Id FROM Second_Table);

आउटपुट:

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

वैकल्पिक: LEFT JOIN का उपयोग

SELECT t1.id 
FROM first_table t1 
LEFT JOIN second_table t2 ON t1.id = t2.id 
WHERE t2.id IS NULL;

दोनों तरीके समान परिणाम देते हैं। NOT IN अधिक पठनीय है, LEFT JOIN बड़े डेटासेट्स पर तेज़ हो सकता है।

  1. - MySQL में UNION का उपयोग करके दो टेबल से एक क्वेरी में चयन करें

    UNION ऑपरेटर का उपयोग करके दो टेबल के परिणाम सेट को संयोजित करें (डुप्लिकेट हटाता है)। क्रमबद्ध करने के लिए ORDER BY जोड़ें। पहली टेबल बनाना और डेटा डालना CREATE TABLE DemoTable1 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VARCHAR(20) ); Query OK, 0 rows affected (0.90 sec) I

  1. - MySQL में दो टेबल पर एकल SELECT क्वेरी करना (कार्टेशियन उत्पाद)

    MySQL में दो टेबल पर कार्टेशियन उत्पाद (क्रॉस जॉइन) दो टेबल पर बिना जॉइन शर्त के SELECT करने से कार्टेशियन उत्पाद (क्रॉस जॉइन) उत्पन्न होता है: पहली टेबल की प्रत्येक पंक्ति दूसरी टेबल की प्रत्येक पंक्ति के साथ जुड़ती है। परिणाम पंक्तियाँ = पंक्तियाँ_टेबल1 × पंक्तियाँ_टेबल2। उदाहरण: दो असंबंधित टेबल

  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