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

¿Manera eficiente de simular la unión externa completa en MySQL?

Puede usar LEFT JOIN y RIGHT JOIN:

SELECT * FROM tableA LEFT JOIN tableB ON tableA.b_id = tableB.id
UNION ALL
SELECT * FROM tableA RIGHT JOIN tableB ON tableA.b_id = tableB.id
WHERE tableA.b_id IS NULL

También hay información en Wikipedia sobre este tema:Unión externa completa .

El artículo de Wikipedia sugiere usar UNION en MySQL. Esto es un poco más lento que UNION ALL, pero lo que es más importante, no siempre dará el resultado correcto:eliminará las filas duplicadas de la salida. Así que prefiera usar UNION ALL en lugar de UNION aquí.