RIGHT और FULL OUTER JOIN का व्यवहार
जानें कि प्रत्येक की आवश्यकता कब होती है और RIGHT को LEFT के रूप में कैसे फिर से लिखें
RIGHT और FULL OUTER JOIN का व्यवहार, CoddyKit पर SQL साक्षात्कार की तैयारी का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL साक्षात्कार की तैयारी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
LEFT JOIN से आगे
LEFT JOIN समझ लेने के बाद, इंटरव्यू लेने वाले इसके उलटे रूप और दोनों के मेल की जाँच करते हैं: RIGHT JOIN और FULL OUTER JOIN।
- RIGHT JOIN दाईं तालिका की प्रत्येक पंक्ति को सुरक्षित रखता है।
- FULL OUTER JOIN दोनों तालिकाओं की बिना मेल वाली पंक्तियों को सुरक्षित रखता है।
यह पाठ दोनों की सटीक परिभाषा देता है और वह पुनर्लेखन युक्ति दिखाता है जिसे इंटरव्यू लेने वाले बहुत पसंद करते हैं: किसी भी RIGHT JOIN को LEFT JOIN में बदला जा सकता है।
RIGHT JOIN की परिभाषा
RIGHT JOIN (या RIGHT OUTER JOIN) दाईं तालिका की प्रत्येक पंक्ति को रखता है, अर्थात वह तालिका जो JOIN कीवर्ड के बाद लिखी जाती है। बिना मेल वाली दाईं पंक्तियाँ बाईं तालिका के कॉलम में NULL के साथ दिखाई देती हैं।
यह LEFT JOIN का बिल्कुल उलटा रूप है। जहाँ LEFT पहले लिखी गई तालिका को सुरक्षित रखता है, वहीं RIGHT दूसरी लिखी गई तालिका को सुरक्षित रखता है।
SELECT c.name, o.amount
FROM orders o
RIGHT JOIN customers c
ON o.customer_id = c.id;
-- keeps ALL customers, even those
-- with no order (Carol -> amount NULL)तालिकाएँ फिर से
डेटा पहले जैसा ही है। Carol (ग्राहक 3) का कोई ऑर्डर नहीं है। यहाँ सभी ऑर्डर पंक्तियाँ किसी मौजूदा ग्राहक का संदर्भ देती हैं, इसलिए जब customers सुरक्षित रखा गया पक्ष हो, तो कोई ऑर्डर अनाथ नहीं होता।
-- customers orders
-- 1 | Alice 10 | 1 | 50
-- 2 | Bob 11 | 1 | 75
-- 3 | Carol 12 | 2 | 20RIGHT को LEFT के रूप में लिखना
इंटरव्यू का मुख्य निष्कर्ष: RIGHT JOIN का व्यवहार में बहुत कम उपयोग होता है, क्योंकि आप हमेशा तालिकाओं का क्रम बदलकर LEFT JOIN का उपयोग कर सकते हैं। नीचे दी गई दोनों क्वेरियाँ तार्किक रूप से समान हैं।
कई शैली-निर्देश RIGHT JOIN पर पूरी तरह रोक लगाते हैं, क्योंकि बाएँ से दाएँ पढ़ना और हमेशा बाईं तालिका को सुरक्षित रखना समझना आसान है।
-- RIGHT JOIN
SELECT c.name, o.amount
FROM orders o
RIGHT JOIN customers c ON o.customer_id = c.id;
-- Equivalent LEFT JOIN (preferred)
SELECT c.name, o.amount
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;FULL OUTER JOIN की परिभाषा
FULL OUTER JOIN दोनों तालिकाओं की बिना मेल वाली पंक्तियों को सुरक्षित रखता है। इसे LEFT JOIN और RIGHT JOIN के संयोजन के रूप में समझें:
- मेल खाती जोड़ियाँ सामान्य रूप से दिखाई देती हैं।
- बिना मेल वाली बाईं पंक्तियाँ: दाईं ओर के कॉलम NULL।
- बिना मेल वाली दाईं पंक्तियाँ: बाईं ओर के कॉलम NULL।
यह इस प्रश्न का उत्तर देता है: "दोनों पक्षों का सब कुछ दिखाइए और मेल खाती पंक्तियों को एक साथ रखिए।"
SELECT c.name, o.id AS order_id
FROM customers c
FULL OUTER JOIN orders o
ON o.customer_id = c.id;FULL OUTER JOIN कब उपयोगी होता है
FULL OUTER JOIN मिलान-जाँच के लिए सबसे उपयोगी है: ऐसी दो डेटासेट की तुलना करने के लिए जिनका मेल खाना चाहिए, लेकिन हो सकता है कि वे मेल न खाएँ।
एक orders तालिका और अलग payments तालिका की कल्पना करें। ऑर्डर id पर किया गया FULL OUTER JOIN एक ही परिणाम में बिना भुगतान वाले ऑर्डर और बिना मेल वाले ऑर्डर के भुगतान दिखाता है; अनुपस्थित पक्ष पर NULL मान प्रत्येक की पहचान कराते हैं।
SELECT o.id AS order_id, p.id AS payment_id
FROM orders o
FULL OUTER JOIN payments p
ON p.order_id = o.id
WHERE o.id IS NULL OR p.id IS NULL;
-- rows where one side is missingडायलेक्ट की समझ
एक साक्षात्कारकर्ता विभिन्न डेटाबेस में चलने की क्षमता की जाँच कर सकता है। MySQL में FULL OUTER JOIN आरक्षित शब्द नहीं है (संस्करण 8 तक)। पोस्टग्रेज़, एसक्यूएल सर्वर और ओरेकल इसे समर्थित करते हैं।
MySQL में इसे UNION के साथ LEFT JOIN और RIGHT JOIN को मिलाकर अनुकरण किया जाता है (जिससे मेल खाने वाली दोहराई गई पंक्तियाँ हट जाती हैं)। इस अंतर की जानकारी व्यावहारिक अनुभव का संकेत देती है।
-- FULL OUTER JOIN emulated in MySQL
SELECT c.name, o.id FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
UNION
SELECT c.name, o.id FROM customers c
RIGHT JOIN orders o ON o.customer_id = c.id;चार JOIN प्रकार एक नज़र में
इस तालिका को याद रखें। "संरक्षित" का अर्थ है कि बिना-मिलान वाली पंक्तियाँ NULL के साथ भी बनी रहती हैं।
- INNER JOIN: केवल मेल खाने वाली पंक्तियाँ। कुछ भी संरक्षित नहीं रहता।
- LEFT JOIN: बाईं ओर की सभी पंक्तियाँ संरक्षित रहती हैं।
- RIGHT JOIN: दाईं ओर की सभी पंक्तियाँ संरक्षित रहती हैं।
- FULL OUTER JOIN: दोनों पक्ष संरक्षित रहते हैं।
बाहरी JOIN से जुड़े हर साक्षात्कार प्रश्न का सार यही है कि किस पक्ष या किन पक्षों को संरक्षित रखना है।
इनमें से चुनना
JOIN चुनते समय पूछिए, "मुझे किन बिना-मिलान वाली पंक्तियों को रखना है?"
- केवल मुख्य तालिका की पंक्तियाँ रखनी हों: LEFT JOIN (मुख्य तालिका को पहले रखें)।
- मिलान-जाँच के लिए दोनों बिना-मिलान वाले समूह चाहिए हों: FULL OUTER JOIN।
- केवल मेल खाने वाली पंक्तियाँ महत्वपूर्ण हों: INNER JOIN।
आप लगभग कभी RIGHT JOIN को सीधे नहीं चुनते; उसे LEFT JOIN के रूप में पुनर्गठित करते हैं।
मिलान-जाँच का उदाहरण
हर पंक्ति की स्थिति बताने के लिए FULL OUTER JOIN का उपयोग कीजिए। NULL के पैटर्न पर CASE यह बताता है कि कौन-सा पक्ष अनुपस्थित है—यह पारंपरिक ऑडिट क्वेरी है।
SELECT
COALESCE(o.id, p.order_id) AS ord,
CASE
WHEN p.id IS NULL THEN 'no payment'
WHEN o.id IS NULL THEN 'orphan payment'
ELSE 'matched'
END AS status
FROM orders o
FULL OUTER JOIN payments p ON p.order_id = o.id;सामान्य गलतफ़हमी
उम्मीदवार अक्सर सोचते हैं कि FULL OUTER JOIN बिना-मिलान वाली पंक्तियों का कार्तीय गुणनफल लौटाता है। ऐसा नहीं होता। दोनों पक्षों की बिना-मिलान वाली पंक्तियाँ NULL के साथ ठीक एक बार दिखाई देती हैं; उनका आपस में गुणन नहीं होता।
मेल खाने वाली पंक्तियाँ अभी भी सामान्य JOIN नियम का पालन करती हैं (हर मेल खाने वाली जोड़ी के लिए एक परिणाम-पंक्ति), यानी हर JOIN की तरह एक-से-अनेक विस्तार का नियम लागू होता है।
त्वरित जाँच
एक साक्षात्कारकर्ता आपसे ऐसी टीम के लिए क्वेरी फिर से लिखने को कहता है जो RIGHT JOIN पर रोक लगाती है।
पुनरावृत्ति
RIGHT JOIN दाईं तालिका को संरक्षित रखता है; FULL OUTER JOIN दोनों पक्षों को संरक्षित रखता है। तालिकाओं का क्रम बदलकर किसी भी RIGHT JOIN को LEFT JOIN में बदला जा सकता है, इसलिए टीमें LEFT को प्राथमिकता देती हैं।
- दो डेटा-समुच्चयों का मिलान करने के लिए FULL OUTER आदर्श है।
- MySQL में FULL OUTER नहीं है; LEFT + RIGHT +
UNIONसे इसका अनुकरण कीजिए। - कौन-सी बिना-मिलान वाली पंक्तियाँ रखनी हैं, यह तय करके JOIN चुनिए।
- बिना-मिलान वाली पंक्तियाँ NULL के साथ एक बार दिखाई देती हैं, कभी कार्तीय गुणनफल के रूप में नहीं।
एआई शिक्षक के साथ SQL सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “RIGHT और FULL OUTER JOIN का व्यवहार” पाठ निःशुल्क है?
हाँ—“RIGHT और FULL OUTER JOIN का व्यवहार” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL साक्षात्कार की तैयारी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“RIGHT और FULL OUTER JOIN का व्यवहार” में मैं क्या सीखूँगा?
जानें कि प्रत्येक की आवश्यकता कब होती है और RIGHT को LEFT के रूप में कैसे फिर से लिखें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL साक्षात्कार की तैयारी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या SQL साक्षात्कार की तैयारी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL साक्षात्कार की तैयारी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“RIGHT और FULL OUTER JOIN का व्यवहार” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस SQL साक्षात्कार की तैयारी पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर SQL साक्षात्कार की तैयारी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- LEFT JOIN और बिना-मिलान वाली ROW को बनाए रखना
- RIGHT और FULL OUTER JOIN का व्यवहार
- बिना मिलान वाली ROW खोजना (Anti-Join)
- बाहरी JOIN पर WHERE का जाल