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

¿Hay alguna razón por la que MySQL no admita FULL OUTER JOINS?

MySQL carece de muchas funciones que tienen otras bases de datos*. Creo que tienen una gran acumulación de ideas y no hay suficientes desarrolladores para implementarlas todas.

Esta función fue solicitada en 2006 y aún no se implementa. Supongo que tiene baja prioridad porque puede solucionarlo combinando LEFT y RIGHT OUTER JOIN con UNION ALL. No es agradable, pero funciona. Cambia esto:

SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.table2_id = table2.id

a esto:

SELECT *
FROM table1
LEFT JOIN table2
ON table1.table2_id = table2.id
UNION ALL
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.table2_id = table2.id
WHERE table1.table2_id IS NULL

* Para ser justos con MySQL, también tienen algunas características que muchas otras bases de datos no tienen.