SQLite के साथ पूर्ण बाहरी जॉइन केवल INNER और बाएं जॉइन है।SQL आउट
क्या SQLite के साथ पूर्ण आउटर जॉइन करने का कोई तरीका है?
SQLite के साथ पूर्ण बाहरी जॉइन केवल INNER और बाएं जॉइन है।SQL आउट
क्या SQLite के साथ पूर्ण आउटर जॉइन करने का कोई तरीका है?
हां, Wikipedia पर उदाहरण देखें।
SELECT employee.*, department.*
FROM employee
LEFT JOIN department
ON employee.DepartmentID = department.DepartmentID
UNION ALL
SELECT employee.*, department.*
FROM department
LEFT JOIN employee
ON employee.DepartmentID = department.DepartmentID
WHERE employee.DepartmentID IS NULL
जोनाथन Leffler की टिप्पणी के बाद, यहाँ मार्क बायर्स 'की है कि के लिए एक विकल्प जवाब है:
SELECT * FROM table_name_1 LEFT OUTER JOIN table_name_2 ON id_1 = id_2
UNION
SELECT * FROM table_name_2 LEFT OUTER JOIN table_name_1 ON id_1 = id_2
मूल स्रोत है और आगे SQLite उदाहरण के लिए here देखें।
मुझे लगता है कि कर्मचारी कहां है। डिपार्टमेंट आईडी पूर्ण है, हालांकि आपको डुप्लिकेशंस पंक्ति – Xenione
प्राप्त करने की कोई बात नहीं है, अगर मुझे गलत नहीं लगता है, तो इसका एक ही परिणाम होना चाहिए, यूनियन डुप्लिकेट रिकॉर्ड से मेल खाएगा, लेकिन यह कम कुशल है यूनियन सभी –
यूनियन (_without_ ALL) डुप्लिकेट पंक्तियां हटा देता है – cowbert
विकिपीडिया उदाहरण तीन प्रश्नों का 'यूनियन' बना रहा है, जहां आपके उदाहरण में केवल दो हैं। क्या आप अंतर को समझा सकते हैं? –
@ ग्राहमबोरलैंड: मेरे उत्तर में कोड विकिपीडिया से लिया गया था। मुझे लगता है कि जब से मैंने पोस्ट किया है विकिपीडिया संपादित किया गया है। अंतर यह है कि वे गैर-मिलान वाले रिकॉर्ड (प्रत्येक तालिका के लिए एक) प्राप्त करने के लिए एक आंतरिक जुड़ने और दो चयन का उपयोग करते हैं। मेरे उत्तर में पूछताछ आंतरिक जुड़ने और बाएं शामिल होने में चयनों में से एक को जोड़ती है। यह (ए) + (बी) + (सी) की तुलना में (ए + बी) + (सी) है। –
यह अभी भी नवीनतम SQLite (3.7.x) के साथ रास्ता है या मानक आउटर जॉइन का उपयोग किया जा सकता है? – 01es