में मैं एसक्यूएल के लिए नया हूँ और मुसीबत समझ क्यों वहाँ एक JOIN
बयान में एक FROM
कीवर्ड अगर मैं डॉट संकेतन का उपयोग tables.columns
है कि मैं चयन करने के लिए हो रहा है। क्या इससे कोई फर्क नहीं पड़ता कि मैं किस तालिका में से चुनता हूं? मुझे w3schools परिभाषा में इस के लिए कोई स्पष्टीकरण नहीं मिला है जिस पर तालिका FROM
तालिका है। नीचे दिए गए उदाहरण में, मुझे कैसे पता चलेगा कि FROM
के लिए कौन सी तालिका चुननी है? चूंकि मैं अनिवार्य रूप से पहले ही चुना गया है कि table.column
चुनने के लिए, क्या यह हो सकता है?जो तालिका का चयन करने के बारे में बताएं "from" शामिल हों बयान
उदाहरण के लिए:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
उत्पन्न होगा कोड वे दोनों तालिकाओं से ..., आप आदेश से कहते हैं और ग्राहकों में शामिल होने और क्वेरी ही वापस आ जाएगी कर सकते हैं परिणाम अगर यह एक आंतरिक शामिल है। बाईं ओर शामिल होने पर, "से" तालिका बाएं टेबल है। जब मैंने एसक्यूएल का उपयोग करना शुरू किया तो यह मुझे उलझन में डाल दिया, इसलिए एक बाएं जुड़ना एक ही चीज है जो बाईं ओर एकमात्र अंतर में शामिल होता है सिंटैक्स – CSharper
हां है। यह या तो हो सकता है। आपके उदाहरण में, दो टेबल नामों को बदल दिया जा सकता है, और पंक्तियां वापस वही होंगी। (जहां टेबल नामों का प्लेसमेंट "बाहरी" ऑपरेशन ऑपरेशन के साथ होता है, यानी "एक बाएं जॉइन बी" "बी राइट जॉइन ए" के बराबर है, लेकिन यह "एक सही जॉइन बी" से अलग है। – spencer7593
'FROM' तालिका की परिभाषा के रूप में: आप वास्तव में "से" का चयन कर रहे हैं, जो ऑपरेशन से परिणाम है, एक टेबल या अन्य नहीं। एसक्यूएल क्या निर्दिष्ट कर रहा है दो टेबल पर "जुड़ें" ऑपरेशन है " ग्राहक आदेश जारी करते हैं ... '"क्वेरी शामिल होने के परिणाम से" से "चयन कर रही है। (समानता तुलना में अभिव्यक्तियों का क्रम कोई फर्क नहीं पड़ता।' A.col = b.col' है 'b.col = a.col' निर्दिष्ट करने के बराबर; समानता तुलना ऑपरेटर की एक संपत्ति।) क्वेरी में सभी * कॉलम संदर्भों को अर्हता प्राप्त करने का सर्वोत्तम अभ्यास है (जैसा कि आपके उदाहरण में दिखाया गया है।) – spencer7593