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

MySQL में टेबल A के वे रिकॉर्ड चुनें जो टेबल B में मौजूद नहीं

NOT IN सबक्वेरी से अंतर प्राप्त करें

एक टेबल में मौजूद लेकिन दूसरी टेबल में नहीं मौजूद रिकॉर्ड पाने के लिए NOT IN के साथ सबक्वेरी का उपयोग करें।

सिंटैक्स

SELECT * FROM tableA
WHERE columnA NOT IN (SELECT columnB FROM tableB);

उदाहरण: टेबल A और B

टेबल A

mysql> CREATE TABLE A (Value INT);
mysql> INSERT INTO A VALUES (10), (20), (30), (50), (80);
+-------+
| Value |
+-------+
| 10    |
| 20    |
| 30    |
| 50    |
| 80    |
+-------+

टेबल B

mysql> CREATE TABLE B (Value2 INT);
mysql> INSERT INTO B VALUES (20), (50);
+--------+
| Value2 |
+--------+
| 20     |
| 50     |
+--------+

क्वेरी: A में जो B में नहीं

mysql> SELECT * FROM A WHERE Value NOT IN (SELECT Value2 FROM B);

परिणाम

+-------+
| Value |
+-------+
| 10    |
| 30    |
| 80    |
+-------+

वैकल्पिक तरीके

LEFT JOIN + IS NULL

SELECT A.* FROM A
LEFT JOIN B ON A.Value = B.Value2
WHERE B.Value2 IS NULL;

NOT EXISTS

SELECT * FROM A
WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.Value2 = A.Value);

तुलना

विधिNULL हैंडलिंगप्रदर्शनपठनीयता
NOT INसबक्वेरी में NULL होने पर कोई पंक्ति नहीं लौटाताअच्छासरल
LEFT JOINसही ढंग से काम करता हैअच्छा (इंडेक्स के साथ)मध्यम
NOT EXISTSसही ढंग से काम करता हैअच्छास्पष्ट

चेतावनी

NOT IN सबक्वेरी में NULL होने पर अप्रत्याशित परिणाम देता है। NOT EXISTS या LEFT JOIN अधिक सुरक्षित।

  1. - MySQL टेबल से SELECT 1 का क्या अर्थ है

    किसी भी टेबल नाम से select 1 स्टेटमेंट का अर्थ है कि यह केवल 1 लौटाता है। उदाहरण के लिए, यदि किसी टेबल में 4 रिकॉर्ड हैं तो यह 1 को चार बार लौटाएगा। आइए एक उदाहरण देखते हैं। सबसे पहले, हम CREATE कमांड का उपयोग करके एक टेबल बनाएंगे। ); Query OK, 0 rows affected (0.51 sec) रिकॉर्ड्स डालना insert

  1. - MySQL SELECT क्वेरी: किसी टेबल से उन रो को चुनें जो दूसरी टेबल में नहीं हैं

    हमारे उदाहरण के लिए, हम दो टेबल बनाएंगे और नेचुरल लेफ्ट जॉइन लागू करके उन रो को प्राप्त करेंगे जो पहली टेबल में हैं लेकिन दूसरी में नहीं। पहली टेबल बनाना। mysql> create table FirstTableDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.48 sec) पहली ट

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर