MySQL में दो टेबल्स के बीच मानों का अंतर (subtraction) निकालने के लिए LEFT JOIN का उपयोग किया जा सकता है। यह तब उपयोगी होता है जब आप एक टेबल के सभी रिकॉर्ड रखते हुए दूसरी टेबल से मिलान करने वाले मानों को घटाना चाहते हैं।
उदाहरण: वर्तमान और पिछली कीमतों का अंतर
मान लीजिए दो टेबल्स हैं — value_curdate (वर्तमान कीमतें) और value_prevdate (पिछली कीमतें):
mysql> SELECT * FROM value_curdate;
+----+----------+-------+
| Id | Product | Price |
+----+----------+-------+
| 1 | Notebook | 100 |
| 2 | Pen | 40 |
| 3 | Pencil | 65 |
+----+----------+-------+
mysql> SELECT * FROM value_prevdate;
+----+-----------+-------+
| Id | Product | Price |
+----+-----------+-------+
| 1 | Notebook | 85 |
| 2 | Pen | 34 |
| 3 | Pencil | 56 |
| 4 | Colors | 65 |
| 5 | Fevistick | 25 |
+----+-----------+-------+
अब LEFT JOIN का उपयोग करके प्रत्येक उत्पाद की वर्तमान और पिछली कीमत का अंतर निकालें:
mysql> SELECT
vc.id,
vc.product,
vc.price AS CurPrice,
vp.price AS PrevPrice,
vc.price - vp.price AS Difference
FROM value_curdate vc
LEFT JOIN value_prevdate vp ON vc.id = vp.id;
परिणाम:
+----+----------+----------+-----------+------------+
| id | product | CurPrice | PrevPrice | Difference |
+----+----------+----------+-----------+------------+
| 1 | Notebook | 100 | 85 | 15 |
| 2 | Pen | 40 | 34 | 6 |
| 3 | Pencil | 65 | 56 | 9 |
+----+----------+----------+-----------+------------+
महत्वपूर्ण नोट्स
LEFT JOINबाएं टेबल (value_curdate) की सभी पंक्तियाँ लौटाता है, भले ही दाएं टेबल में मिलान न हो।- यदि दाएं टेबल में मिलान नहीं है, तो
vp.priceNULLहोगा और घटाव का परिणाम भीNULLहोगा। - केवल सामान्य ID वाले उत्पादों का अंतर दिखता है क्योंकि दाएं टेबल में ID 4 और 5 बाएं टेबल में नहीं हैं।