Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक प्रश्न में एएनएसआई 1992 जॉइन और कॉमा को मिलाना

इस लिंक के अनुसार , जॉइन बनाते समय आपको दोनों नोटेशन को मिलाना नहीं चाहिए। memebers as m, telephone as t . के रूप में शामिल करने के लिए आप जिस अल्पविराम का उपयोग कर रहे हैं , और उसके बाद inner join . को कॉल करें , अज्ञात कॉलम त्रुटि को ट्रिगर कर रहे हैं।

इससे निपटने के लिए, CROSS/INNER/LEFT JOIN का उपयोग करें अल्पविराम के बजाय।

<ब्लॉककोट>

पहले, अल्पविराम ऑपरेटर (,) और जॉइन दोनों की समान प्राथमिकता थी, इसलिए जॉइन एक्सप्रेशन t1, t2 JOIN t3 की व्याख्या ((t1, t2) JOIN t3) के रूप में की गई थी। अब जॉइन की उच्च प्राथमिकता है, इसलिए अभिव्यक्ति की व्याख्या (टी 1, (टी 2 जॉइन टी 3)) के रूप में की जाती है। यह परिवर्तन उन बयानों को प्रभावित करता है जो ON क्लॉज का उपयोग करते हैं, क्योंकि वह क्लॉज केवल जॉइन के ऑपरेंड में कॉलम को संदर्भित कर सकता है, और पूर्वता में परिवर्तन उन ऑपरेंड की व्याख्या को बदल देता है।

शैक्षणिक उद्देश्य के लिए, मैं क्वेरी को इस रूप में जोड़ रहा हूं, जैसा कि मुझे लगता है, यह होना चाहिए:

SELECT m.*, t.*
FROM memebers as m 
    JOIN telephone as t
    JOIN memeberFunctions as mf ON m.id = mf.memeber AND mf.function = 32
    JOIN mitgliedTelephone as mt ON m.id = mt.memeber

चूंकि आप t . में शामिल नहीं हो रहे हैं और m , अंतिम परिणाम कार्टेशियन उत्पाद होगा; हो सकता है कि आप इसे संशोधित करना चाहें।

मुझे आशा है कि इससे मदद मिली।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या हम JDBC का उपयोग करके Android में दूरस्थ MySQL डेटाबेस को कनेक्ट कर सकते हैं?

  2. MySQL में अल्पविराम के साथ संख्याओं को कैसे प्रारूपित करें

  3. mySQL त्रुटि 1040:बहुत अधिक कनेक्शन

  4. सभी दूरस्थ कनेक्शन की अनुमति दें, MySQL

  5. MySQL 8.0+ त्रुटि के साथ PHP:सर्वर ने क्लाइंट के लिए अज्ञात प्रमाणीकरण विधि का अनुरोध किया