Nie wiem, co dokładnie próbuje osiągnąć twoje zapytanie i gdzie potrzebujesz pełnego sprzężenia zewnętrznego, ale zacznę tę odpowiedź od stwierdzenia, że MySQL nie ma wbudowanej obsługi pełnego sprzężenia zewnętrznego. Na podstawie tego pytania SO , możemy znaleźć alternatywny sposób na napisanie następującego zapytania:
SELECT * FROM t1
FULL OUTER JOIN t2
ON t1.id = t2.id
Można to przepisać jako UNION
sprzężenia lewego i sprzężenia prawego:
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
W Laravel możemy napisać następujący kod reprezentujący powyższe pełne sprzężenie zewnętrzne:
$second = DB::table('t2')
->rightJoin('t1', 't1.id', '=', 't2.id')
$first = DB::table('t1')
->leftJoin('t2', 't1.id', '=', 't2.id')
->unionAll($first)
->get();
Ponownie, nie wiem, dlaczego uważasz, że potrzebujesz dwóch sprzężeń zewnętrznych, ale niezależnie od tego powinieneś być w stanie dostosować powyższy kod i zapytanie i użyć go w swojej sytuacji.
Referencje:
- Link do pełnych złączeń zewnętrznych w MySQL:Pełne złącze zewnętrzne MySQL
- Link do dokumentacji kreatora zapytań Laravel 5.3:https://laravel.com/docs/5.3/