En el tutorial anterior explicábamos cómo trabajar en SQL utilizando INNER JOIN. El día de hoy hablaremos del segundo más usado de los JOINs, LEFT OUTER JOIN.
LEFT OUTER JOIN
Como decíamos en el tutorial anterior la estructura de los JOINs es algo estándar, formada por la definición de una tabla a la izquierda y otra a la derecha de la cláusula, seguida por una o más condiciones cuyo objetivo es establecer relación de igualdad entre ambas tablas. Su nombre deja ver algo de lo que propone, dado que LEFT traducido al español significa izquierda y nos da una idea que guarda relación con la tabla ubicada a la izquierda de la cláusula.
Evidentemente, y presten atención a lo siguiente porque es todo lo que hay que saber y memorizar de las sentencias con este JOIN, el objetivo de LEFT OUTER JOIN consiste en tratar de los registros de dos tablas a partir de una o más condiciones al igual que INNER JOIN, con la diferencia que si los datos que se buscan de la tabla a la IZQUIERDA no se encuentran en la tabla a la derecha, la data de la tabla izquierda se muestra en el resultado y la data de la tabla a la derecha se muestra toda NULL en el registro en cuestión.
¿Cómo trabaja?
Partamos del hecho que contamos dos tablas, Personas:
Personas | ||
Tipo identificación | Número identificación | Nombre |
CC | 123456 | Manuel Martínez |
TI | 234567 | Pepito Pérez |
PP | 345678 | Gabriel Garcia |
Y Tipos de identificación:
Tipos de identificación | ||
Código | Nombre | Descripción |
CC | Cédula de ciudadanía | Documento de identidad para personas mayores de edad. |
TI | Tarjeta de identidad | Documento de identidad para personas menores de edad. |
Y consultamos: Código tipo identificación, Nombre tipo identificación, Número identificación y Nombre persona, estableciendo la relación colocando Personas a la izquierda y tipos de identificación a la derecha, de la siguiente forma:
SELECT p.tipo_identificacion CODIGO_TIPO_IDENTIFICACION, ti.nombre NOMBRE_TIPO_IDENTIFICACION, p.numero_identificacion NUMERO_IDENTIFICACION, p.nombre NOMBRE_PERSONA FROM personas p LEFT OUTER JOIN tipos_identificacion ti ON ti.codigo = p.tipo_identificacion
Obtendremos el siguiente resultado:
Resultado | |||
CC | Cédula de ciudadanía | 123456 | Manuel Martínez |
TI | Tarjeta de identidad | 234567 | Pepito Pérez |
PP | NULL | 345678 | Gabriel García |
Conservando el Result Set la data perteneciente al registro Gabriel García de la tabla Personas y colocando NULL en las columnas correspondientes a la data de la tabla Tipos de identificación.
Esto es todo por hoy, espero este tutorial haya sido de su agrado, nos vemos en una próxima entrada.
Permalink