sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo usar la unión completa externa en laravel 5.0?

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: