इसे समझने के लिए हम निम्नलिखित तालिकाओं के डेटा का उपयोग कर रहे हैं -
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 क्लॉज में ले जाएं और LEFT JOIN का उपयोग करके इसे 'ग्राहकों' से जोड़ें।
- WHERE क्लॉज ग्राहक_आईडी कॉलम की तुलना सबक्वेरी से लौटाए गए आईडी से करता है। इसलिए आईएन एक्सप्रेशन को FROM क्लॉज में दो तालिकाओं के आईडी कॉलम के बीच एक स्पष्ट प्रत्यक्ष तुलना में परिवर्तित करें।
- WHERE क्लॉज में, आउटपुट को 'रिजर्व' टेबल में NULL वाली पंक्तियों तक सीमित रखें।
mysql> SELECT Name from customers LEFT JOIN reserve ON customer_id = Id WHERE Id IS NULL; +----------+ | Name | +----------+ | Virender | +----------+ 1 row in set (0.00 sec)