इसे समझने के लिए हम निम्नलिखित तालिकाओं के डेटा का उपयोग कर रहे हैं -
mysql> Select * from Customers; +-------------+----------+ | Customer_Id | Name | +-------------+----------+ | 1 | Rahul | | 2 | Yashpal | | 3 | Gaurav | | 4 | Virender | +-------------+----------+ 4 rows in set (0.00 sec) mysql> Select * from Reserve; +------+------------+ | ID | Day | +------+------------+ | 1 | 2017-12-30 | | 2 | 2017-12-28 | | 2 | 2017-12-25 | | 1 | 2017-12-24 | | 3 | 2017-12-26 | +------+------------+ 5 rows in set (0.00 sec)
अब, निम्नलिखित एक सबक्वेरी है जिसमें उन सभी ग्राहकों के नाम मिलेंगे, जिन्होंने कोई कार आरक्षित नहीं की है।
mysql> Select Name from customers where customer_id NOT IN (Select id From reserve); +----------+ | Name | +----------+ | Virender | +----------+ 1 row in set (0.00 sec)
अब, निम्नलिखित चरणों की सहायता से, हम उपरोक्त सबक्वेरी को राइट जॉइन में बदल सकते हैं -
-
सबक्वायरी में नामित 'ग्राहक' तालिका को FROM क्लॉज में ले जाएं और राइट जॉइन का उपयोग करके इसे 'रिजर्व' में शामिल करें।
-
WHERE क्लॉज ग्राहक_आईडी कॉलम की तुलना सबक्वेरी से लौटाए गए आईडी से करता है। इसलिए आईएन एक्सप्रेशन को FROM क्लॉज में दो तालिकाओं के आईडी कॉलम के बीच एक स्पष्ट प्रत्यक्ष तुलना में परिवर्तित करें।
-
WHERE क्लॉज में, आउटपुट को 'रिजर्व' टेबल में NULL वाली पंक्तियों तक सीमित रखें।
mysql> SELECT Name from reserve RIGHT JOIN customers ON customer_id = Id WHERE Id IS NULL; +----------+ | Name | +----------+ | Virender | +----------+ 1 row in set (0.00 sec)