कभी-कभी आपको उन पंक्तियों को खोजने की आवश्यकता हो सकती है जो किसी अन्य तालिका में मौजूद नहीं हैं या उन पंक्तियों का चयन करें जो किसी अन्य तालिका में मौजूद नहीं हैं। इस लेख में, हम देखेंगे कि NOT EXISTS क्लॉज का उपयोग करके MySQL में किसी अन्य तालिका में मौजूद पंक्तियों को कैसे दिखाया जाए।
MySQL नॉट EXISTS क्लॉज
MySQL EXISTS, UNION और NOT EXISTS क्लॉज़ प्रदान करता है जो आपको MySQL तालिकाओं के साथ SET संचालन करने में मदद करता है। SET संचालन से, हमारा मतलब है कि आप MySQL तालिकाओं और क्वेरी परिणामों को गणितीय सेट के रूप में मान सकते हैं और उन पंक्तियों का चयन कर सकते हैं जो दोनों तालिकाओं, या केवल एक तालिका में मौजूद हैं। हमारे लेख के लिए, हम NOT EXISTS क्लॉज का उपयोग करेंगे।
पंक्तियों को कैसे दिखाएं जो किसी अन्य तालिका में मौजूद नहीं हैं
किसी अन्य तालिका में मौजूद पंक्तियों को खोजने के लिए यहां चरण दिए गए हैं। मान लें कि आपके पास दो टेबल हैं बिक्री (आईडी, ऑर्डर_डेट, राशि) और आदेश (आईडी, आदेश_तिथि, राशि)
mysql> create table sales(id int, order_date date, amount int); mysql> insert into sales(id, order_date, amount) values(1, '2021-01-24',250), (2, '2021-01-25',250), (3, '2021-01-26',250), (4, '2021-01-27',250), (5, '2021-01-28',250), (6, '2021-01-29',250), (7, '2021-01-30',250), (8, '2021-01-31',250), (9, '2021-02-01',250); mysql> select * from sales; +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 1 | 2021-01-24 | 250 | | 2 | 2021-01-25 | 250 | | 3 | 2021-01-26 | 250 | | 4 | 2021-01-27 | 250 | | 5 | 2021-01-28 | 250 | | 6 | 2021-01-29 | 250 | | 7 | 2021-01-30 | 250 | | 8 | 2021-01-31 | 250 | | 9 | 2021-02-01 | 250 | +------+------------+--------+ mysql> create table orders(id int, order_date date, amount int); mysql> insert into orders(id, order_date, amount) values(5, '2021-01-28',250), (6, '2021-01-29',250), (7, '2021-01-30',250), (8, '2021-01-31',250), (9, '2021-02-01',250); mysql> select * from orders; +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 5 | 2021-01-28 | 250 | | 6 | 2021-01-29 | 250 | | 7 | 2021-01-30 | 250 | | 8 | 2021-01-31 | 250 | | 9 | 2021-02-01 | 250 | +------+------------+--------+
यहां बिक्री . से डेटा चुनने के लिए SQL क्वेरी है तालिका जो आदेशों . में मौजूद नहीं है टेबल।
mysql> SELECT * FROM sales D WHERE NOT EXISTS(SELECT * FROM orders c WHERE D.order_date = C.order_date); +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 1 | 2021-01-24 | 250 | | 2 | 2021-01-25 | 250 | | 3 | 2021-01-26 | 250 | | 4 | 2021-01-27 | 250 | +------+------------+--------+
उपरोक्त क्वेरी में, हम बिक्री . से पंक्ति का चयन करने के लिए NOT EXISTS क्लॉज का उपयोग करते हैं तालिका जो आदेशों . में मौजूद नहीं है तालिका, जिसे सबक्वेरी का उपयोग करके चुना जाता है। सबक्वेरी में, हम आदेशों . से केवल उन्हीं पंक्तियों का चयन करते हैं तालिका जिसका order_date बिक्री . के समान है टेबल।
MySQL के लिए रिपोर्टिंग टूल चाहिए? Ubiq मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!