2010-07-29 8 views
15

क्या कोई कारण है कि MySQL पूर्ण बाहरी जॉइन का समर्थन नहीं करता है? मैंने कई बार mysql में पूर्ण बाहरी सिंटैक्स की कोशिश की है और यह कभी काम नहीं करता है, बस यह पता चला कि यह mysql द्वारा समर्थित नहीं है, इसलिए क्यों उत्सुक है?क्या कोई कारण है MySQL पूर्ण बाहरी जॉइन का समर्थन नहीं करता है?

+0

आप इस सुविधा को लागू करने के लिए [MySql] पर लागू कर सकते हैं (http://bugs.mysql.com/bug.php?id=18003&thanks=3¬ify=67) –

उत्तर

22

MySQL में बहुत सारी कार्यक्षमता की कमी है जो अन्य डेटाबेस में * है। मुझे लगता है कि उनके पास विचारों का एक बहुत बड़ा बैकलॉग है और पर्याप्त डेवलपर्स उन सभी को लागू करने के लिए नहीं हैं।

यह सुविधा 2006 में was requested और अभी भी लागू नहीं हुई है। मुझे लगता है कि इसकी कम प्राथमिकता है क्योंकि आप यूनियन ऑल के साथ बाएं और दाएं बाहरी जॉइन के संयोजन से इसके आसपास काम कर सकते हैं। सुखद नहीं है, लेकिन यह चाल है। इस बदलें:

SELECT * 
FROM table1 
FULL OUTER JOIN table2 
ON table1.table2_id = table2.id 
इस के लिए

:

SELECT * 
FROM table1 
LEFT JOIN table2 
ON table1.table2_id = table2.id 
UNION ALL 
SELECT * 
FROM table1 
RIGHT JOIN table2 
ON table1.table2_id = table2.id 
WHERE table1.table2_id IS NULL 

* MySQL निष्पक्ष रहने के लिए, वे भी कई अन्य डेटाबेस की जरूरत नहीं है कि कुछ विशेषताएं हैं।

1

क्योंकि यह कभी भी MySQL डेवलपर्स द्वारा लागू नहीं किया गया था। क्यों? क्योंकि ग्राहकों से पर्याप्त दबाव नहीं था।

+2

+1 जबकि मुझे संदेह है कि यहां कोई कारण है इसमें कोई संदेह नहीं है कि सहसंबंध है मुझे संदेह है कि 'पूर्ण बाहरी जॉइन' कई माईएसक्ल की इच्छासूची के शीर्ष पर है (रिकॉर्ड के लिए, मेरा शीर्ष 'चेक' बाधाएं हैं जो वास्तव में चेक की जाती हैं)। – onedaywhen

0

एक उत्पाद के रूप में परिपक्व होने के साथ, प्रत्येक रिलीज के साथ और अधिक सुविधाएं जुड़ जाती हैं। अभी तक इसे लागू नहीं करने के लिए इसे अभी तक चाक लें। मुझे यकीन है कि यह अंततः वहां होगा, इसका मतलब यह नहीं है कि MySQL खराब या कुछ भी है, प्रत्येक डेटाबेस में अतिरिक्त और लापता विशेषताएं भी हैं। मेरी इच्छा है कि एसक्यूएल सर्वर में ग्रुप कॉन्सटेनेशन फीचर है जो MySQL है!

4

मुझे विश्वास नहीं है कि MySQL देवताओं ने कभी भी तकनीकी कारण बताया है कि इसे लागू करना मुश्किल क्यों हो सकता है।

लेकिन अधिकांश डीबीएमएस की तरह MySQL में कई जगहें हैं जहां यह एएनएसआई मानक को पूरी तरह कार्यान्वित नहीं करती है। चूंकि पूर्ण बाहरी जॉइन एक दुर्लभ रूप से उपयोग की जाने वाली विशेषता है, और आम तौर पर यूनियन वर्कअराउंड द्वारा प्रतिस्थापित किया जा सकता है, इसे ठीक करने के लिए थोड़ा दबाव होता है।

मैं आपकी आवाज bug 18003 पर जोड़ने का सुझाव देता हूं।

1

एक बड़ी प्रणाली से, मैं आमतौर पर एक बार या दो बार एक पूर्ण बाहरी जॉइन का उपयोग कर सकता हूं, इसलिए इसके लिए बड़ी मांग नहीं है और निश्चित रूप से आप इसके आसपास काफी आसानी से और संभावित रूप से अधिक स्पष्ट रूप से पढ़ सकते हैं (यदि आप बाएं/दाएं परिणामों के आधार पर व्युत्पन्न कॉलम का उल्लंघन कर रहे हैं) बाएं और दाएं जॉइन के यूनियन के साथ।

संबंधित मुद्दे