मुझे नहीं पता कि आपकी क्वेरी वास्तव में क्या हासिल करने की कोशिश कर रही है, और आपको पूर्ण बाहरी जुड़ाव की आवश्यकता कहां है, लेकिन मैं यह उत्तर यह कहकर शुरू करूंगा कि MySQL के पास पूर्ण बाहरी जुड़ाव के लिए कोई अंतर्निहित समर्थन नहीं है। इस SO प्रश्न पर आधारित , हम निम्नलिखित प्रश्न लिखने का एक वैकल्पिक तरीका ढूंढ सकते हैं:
SELECT * FROM t1
FULL OUTER JOIN t2
ON t1.id = t2.id
इसे UNION
. के रूप में फिर से लिखा जा सकता है लेफ्ट जॉइन और राइट जॉइन:
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
Laravel में, हम उपरोक्त पूर्ण बाहरी जुड़ाव का प्रतिनिधित्व करने के लिए निम्नलिखित कोड लिख सकते हैं:
$second = DB::table('t2')
->rightJoin('t1', 't1.id', '=', 't2.id')
$first = DB::table('t1')
->leftJoin('t2', 't1.id', '=', 't2.id')
->unionAll($first)
->get();
दोबारा, मुझे नहीं पता कि आपको क्यों लगता है कि आपको दो बाहरी जुड़ावों की आवश्यकता है, लेकिन भले ही आप उपरोक्त कोड और क्वेरी को अनुकूलित करने और अपनी स्थिति के लिए इसका उपयोग करने में सक्षम हों।
संदर्भ:
- MySQL में पूर्ण बाहरी जॉइन का लिंक:फुल आउटर जॉइन इन MySQL
- लारवेल 5.3 क्वेरी बिल्डर डॉक्स का लिंक:https://laravel.com/docs/5.3/ए>