Una de las complicaciones al aplicar un outer join
es determinar en qué lugar debemos colocar las condiciones de filtrado para ni perder tuplas que deberían aparecer en el resultado, ni hacer que en éste aparezcan tuplas de más.
Condiciones en outer join (on vs where)
FULL OUTER JOIN en MySQL
A diferencia de otros SGBD como SQL Server, Oracle o PostgreSQL, MySQL no implementa la operación FULL OUTER JOIN (me refiero a la versión 8.0.32 e inferiores). Sí implementa LEFT OUTER JOIN y RIGHT OUTER JOIN.
Para realizar esta operación en MySQL hay que hacer la UNION de ambos OUTER JOIN laterales. Pero la explicación requiere aclarar algún matiz adicional que encontrarás descrito a continuación
Funciones de manipulación de cadenas para extraer la ciudad a partir de la dirección
Es habitual tener un campo con direcciones en tablas de una BD. La dirección puede contener la calle, la ciudad… Esta lección te muestra cómo obtener solo la ciudad a partir de la dirección completa.
No hace falta usar coalesce con count
En algunos ejemplos de agrupaciones, por ejemplo sobre el resultado de un outer join, hemos usado coalesce para evitar que aparezca un valor null como resultado de alguna función de agrupación sobre un grupo de valores que son todos nulos.
Por ejemplo: la expresión sum(salario) devuelve null si todos los valores del campo salario en el grupo son null; pero coalesce(sum(salario), 0) devuelve 0.
Lo anterior no es necesario si la función de agrupación es count. La función count ya devuelve 0 si todos los valores contados son null.