No sé qué intenta lograr exactamente su consulta y dónde necesita una combinación externa completa, pero comenzaré esta respuesta diciendo que MySQL no tiene soporte incorporado para la combinación externa completa. Basado en esta pregunta SO , podemos encontrar una forma alternativa de escribir la siguiente consulta:
SELECT * FROM t1
FULL OUTER JOIN t2
ON t1.id = t2.id
Esto se puede reescribir como UNION
de una combinación izquierda y una combinación derecha:
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
En Laravel, podemos escribir el siguiente código para representar la unión externa completa anterior:
$second = DB::table('t2')
->rightJoin('t1', 't1.id', '=', 't2.id')
$first = DB::table('t1')
->leftJoin('t2', 't1.id', '=', 't2.id')
->unionAll($first)
->get();
Una vez más, no sé por qué cree que necesita dos uniones externas, pero de todos modos debería poder adaptar el código anterior y consultarlo y usarlo para su situación.
Referencias:
- Enlace a combinaciones externas completas en MySQL:Combinación externa completa MySQL
- Enlace a los documentos del generador de consultas de Laravel 5.3:https://laravel.com/docs/5.3/