MySQL में NOT IN के साथ सबक्वेरी का उपयोग करके विशिष्ट मान वाली पंक्तियों को बाहर करें।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(100),
-> Age INT
-> );
Query OK, 0 rows affected (0.87 sec)
mysql> INSERT INTO DemoTable(Name, Age) VALUES('John', 21);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable(Name, Age) VALUES('Carol', 22);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(Name, Age) VALUES('David', 23);
Query OK, 1 row affected (0.54 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | John | 21 | | 2 | Carol | 22 | | 3 | David | 23 | +----+-------+------+ 3 rows in set (0.00 sec)
सबक्वेरी के साथ "Carol" को बाहर करना
mysql> SELECT * FROM DemoTable
-> WHERE Name NOT IN (SELECT Name FROM DemoTable WHERE Name = 'Carol');
आउटपुट
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | John | 21 | | 3 | David | 23 | +----+-------+------+ 2 rows in set (0.00 sec)
वैकल्पिक दृष्टिकोण: सरल मामलों के लिए, सीधे WHERE Name != 'Carol' या WHERE Name <> 'Carol' का उपयोग करें। सबक्वेरी दृष्टिकोण तब उपयोगी होता है जब बाहर करने की शर्त जटिल हो या किसी अन्य टेबल/क्वेरी से आती हो।
सावधानी: यदि सबक्वेरी NULL लौटाती है, तो NOT IN कोई पंक्ति नहीं लौटाएगा। ऐसे मामलों में NOT EXISTS या LEFT JOIN ... WHERE IS NULL पैटर्न का उपयोग करें।