क्या बिना ON
कथन के जुड़ना लिखना संभव है ? और ये जुड़ाव कैसे अलग LEFT JOIN, RIGHT JOIN
काम करते हैं।
क्या बिना ON
कथन के जुड़ना लिखना संभव है ? और ये जुड़ाव कैसे अलग LEFT JOIN, RIGHT JOIN
काम करते हैं।
जवाबों:
MySQL प्रलेखन इस विषय को शामिल किया गया।
यहाँ एक सार है। उपयोग करते समय join
या inner join
, on
हालत वैकल्पिक है। यह एएनएसआई मानक से अलग है और लगभग किसी भी अन्य डेटाबेस से अलग है। प्रभाव एक है cross join
। इसी तरह, आप एक on
क्लॉज़ का उपयोग कर सकते हैं cross join
, जो मानक एसक्यूएल से भी भिन्न होता है।
एक क्रॉस जॉइन एक कार्टेशियन उत्पाद बनाता है - अर्थात, पहली पंक्ति से 1 पंक्ति का हर संभव संयोजन और दूसरी से 1 पंक्ति। क्रॉस तीन पंक्तियों ('ए', 'बी', और 'सी') के साथ एक तालिका के लिए जुड़ता है और चार पंक्तियों वाली तालिका (जैसे 1, 2, 3, 4) में 12 पंक्तियाँ होंगी।
व्यवहार में, यदि आप एक क्रॉस जॉइन करना चाहते हैं, तो उपयोग करें cross join
:
from A cross join B
इससे बहुत बेहतर है:
from A, B
तथा:
from A join B -- with no on clause
on
खंड एक सही करने के लिए आवश्यक या बाहरी में शामिल होने, इसलिए चर्चा उनके लिए प्रासंगिक नहीं है छोड़ दिया है।
यदि आपको विभिन्न प्रकार के जॉन्स को समझने की आवश्यकता है, तो आपको रिलेशनल डेटाबेस पर कुछ अध्ययन करने की आवश्यकता है। चर्चा के उस स्तर के लिए स्टैकओवरफ़्लो एक उपयुक्त स्थान नहीं है।
कुछ उदाहरण देखें http://www.sitepoint.com/understanding-sql-joins-mysql-database/ में
आप 'ON' के बजाय 'USING' का उपयोग क्वेरी में कर सकते हैं
SELECT * FROM table1 LEFT JOIN table2 USING (id);
ON
सर्वर सर्वर को बताता है कि टेबल कैसे संबंधित हैं, नहीं। यदि आपके अलग-अलग प्रकार के सभी समान परिणाम देते हैं तो आप इसे किसी भी तरह से गलत कर रहे हैं, और कुछ कोड जोड़ने से हमें आपकी समस्या का पता लगाने में मदद मिल सकती है। अलग-अलग प्रकार के प्रकारों के लिए 2 मिनट के इंट्रो के लिए जेफ एटवुड के ब्लॉग पर माध्य समय में ।