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

लेफ्ट जॉइन कम्यूटिव है? इसके गुण क्या हैं?

विकिपीडिया:

"गणित में, एक द्विआधारी संक्रिया क्रमविनिमेय होती है यदि ऑपरेंड के क्रम को बदलने से परिणाम नहीं बदलता है। यह कई द्विआधारी संक्रियाओं का एक मूलभूत गुण है, और कई गणितीय प्रमाण इस पर निर्भर करते हैं।"

उत्तर:

नहीं, लेफ्ट जॉइन कम्यूटिव नहीं है। और इनर जॉइन है।

लेकिन वास्तव में आप यही नहीं पूछ रहे हैं।

निम्नलिखित प्रश्न है:

TableA INNER JOIN TableB LEFT JOIN TableC LEFT JOIN TableD

(सभी एक आईडी कॉलम में शामिल हो गए) इसके बराबर:

TableA INNER JOIN TableB
       INNER JOIN TableC
        LEFT JOIN TableD   
UNION     
TableA INNER JOIN TableB
        LEFT JOIN TableC ON TableB.c_id IS NULL
        LEFT JOIN TableD    

उत्तर:

भी नहीं। यूनियन और जॉइन वास्तव में एक ही चीज़ को पूरा नहीं करते हैं, आम तौर पर बोलते हैं। किसी मामले में आप उन्हें समान रूप से लिखने में सक्षम हो सकते हैं, लेकिन मुझे नहीं लगता कि आप इतना सामान्य छद्म एसक्यूएल दिखा रहे हैं। ON संविधान ऐसा लगता है कि इसे काम नहीं करना चाहिए (शायद कुछ ऐसा जिसके बारे में मैं MySQL में नहीं जानता?)

यहां प्रश्नों का एक सरलीकृत सेट दिया गया है जो मुझे लगता है कि समकक्ष होगा।

SELECT * 
  FROM TableA a 
       LEFT JOIN 
       TableB b ON a.id = b.id_a 

SELECT * 
  FROM TableA a 
       INNER JOIN 
       TableB b ON a.id = b.id_a 
UNION      
SELECT * 
  FROM TableA a  
       LEFT JOIN 
       TableB b ON a.id = b.id_a 
 WHERE TableB.id IS NULL

2 संपादित करें:

यहां एक और उदाहरण दिया गया है जो आपके करीब है लेकिन संक्षेप में वही है।

SELECT * 
  FROM            TableA a 
       INNER JOIN TableB b ON a.id = b.id_a 
        LEFT JOIN TableC c ON b.id = c.id_b 

के समान है

SELECT * 
  FROM TableA a 
       INNER JOIN TableB b ON a.id = b.id_a 
       INNER JOIN TableC c ON b.id = c.id_b 
UNION      
SELECT * 
  FROM TableA a  
       INNER JOIN TableB b ON a.id = b.id_a 
        LEFT JOIN TableC c ON b.id = c.id_b 
 WHERE TableC.id IS NULL

लेकिन मैं अभी भी यह मत सोचो कि मैं तुम्हारे असली प्रश्न का उत्तर दे रहा हूँ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQLdb, mysqlclient और MySQL कनेक्टर/पायथन में क्या अंतर है?

  2. लिनक्स पर मेरे एएसपीनेट कोर ऐप से मेरी टेबल माइग्रेट कैसे करें?

  3. php के साथ mysql में XML डेटा डालें

  4. मेरी SQL त्रुटि:एक कनेक्शन प्रयास विफल हुआ क्योंकि कनेक्टेड पार्टी ने ठीक से प्रतिक्रिया नहीं दी

  5. मैं क्वेरी देखने के लिए INDEX का उपयोग करने के लिए MySQL कैसे प्राप्त करूं?