NOT IN सबक्वेरी को RIGHT JOIN में भी बदला जा सकता है, टेबल क्रम उल्टा करके।
उदाहरण टेबल्स (पिछले लेख समान):
-- Customers
+-------------+----------+
| Customer_Id | Name |
+-------------+----------+
| 1 | Rahul |
| 2 | Yashpal |
| 3 | Gaurav |
| 4 | Virender |
+-------------+----------+
-- Reserve
+------+------------+
| ID | Day |
+------+------------+
| 1 | 2017-12-30 |
| 2 | 2017-12-28 |
| 2 | 2017-12-25 |
| 1 | 2017-12-24 |
| 3 | 2017-12-26 |
+------+------------+
मूल सबक्वेरी - बुकिंग न करने वाले ग्राहक:
mysql> Select Name from customers
-> where customer_id NOT IN (Select id From reserve);
+----------+
| Name |
+----------+
| Virender |
+----------+
RIGHT JOIN में रूपांतरण चरण:
- सबक्वेरी की टेबल (
Customers) कोFROMक्लॉज में लाएं औरRIGHT JOINकरेंReserveसे WHEREक्लॉज केINको दोनों टेबल के ID कॉलम की सीधी तुलना में बदलेंWHEREमेंReserveटेबल के कॉलमIS 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)
LEFT JOIN vs RIGHT JOIN:
| पहलू | LEFT JOIN | RIGHT JOIN |
|---|---|---|
| ड्राइविंग टेबल | बाएं (Customers) | दाएं (Customers) |
| संरक्षित टेबल | Customers (सभी पंक्तियां) | Customers (सभी पंक्तियां) |
| पठनीयता | अधिक सहज (बाएं से दाएं) | कम सहज |
| मानक अभ्यास | पसंदीदा | कम उपयोग |
सिफारिश: LEFT JOIN उपयोग करें - यह अधिक पठनीय है और SQL समुदाय में मानक एंटी-जॉइन पैटर्न है।