Nevím, čeho přesně se váš dotaz snaží dosáhnout a kde potřebujete úplné vnější spojení, ale začnu tuto odpověď tím, že MySQL nemá žádnou vestavěnou podporu pro úplné vnější spojení. Na základě této otázky SO , můžeme najít alternativní způsob, jak napsat následující dotaz:
SELECT * FROM t1
FULL OUTER JOIN t2
ON t1.id = t2.id
Toto lze přepsat jako UNION
levého a pravého spojení:
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
V Laravelu můžeme napsat následující kód, který bude reprezentovat výše uvedené úplné vnější spojení:
$second = DB::table('t2')
->rightJoin('t1', 't1.id', '=', 't2.id')
$first = DB::table('t1')
->leftJoin('t2', 't1.id', '=', 't2.id')
->unionAll($first)
->get();
Znovu, nevím, proč si myslíte, že potřebujete dvě vnější spojení, ale bez ohledu na to byste měli být schopni přizpůsobit výše uvedený kód a dotaz a použít jej pro vaši situaci.
Odkazy:
- Odkaz na úplné vnější připojení v MySQL:Úplné vnější připojení MySQL
- Odkaz na dokumenty pro tvorbu dotazů Laravel 5.3:https://laravel.com/docs/5.3/