Non so esattamente cosa sta cercando di ottenere la tua query e dove hai bisogno di un join esterno completo, ma inizierò questa risposta dicendo che MySQL non ha supporto integrato per il join esterno completo. Sulla base di questa domanda SO , possiamo trovare un modo alternativo per scrivere la seguente query:
SELECT * FROM t1
FULL OUTER JOIN t2
ON t1.id = t2.id
Questo può essere riscritto come UNION
di un join sinistro e un join destro:
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
In Laravel, possiamo scrivere il codice seguente per rappresentare il join esterno completo sopra:
$second = DB::table('t2')
->rightJoin('t1', 't1.id', '=', 't2.id')
$first = DB::table('t1')
->leftJoin('t2', 't1.id', '=', 't2.id')
->unionAll($first)
->get();
Ancora una volta, non so perché pensi di aver bisogno di due outer join, ma in ogni caso dovresti essere in grado di adattare il codice e la query sopra e usarlo per la tua situazione.
Riferimenti:
- Collegamento a join esterni completi in MySQL:Partecipa a Full Outer MySQL
- Link ai documenti del generatore di query Laravel 5.3:https://laravel.com/docs/5.3/