Para los profesionales que usan lenguaje SQL para consultar, extraer y comparar registros de diferentes tablas, es muy útil saber realizar queries (consultas) con cruce de datos. Estas facilitan la combinación de información de varias entidades, mientras evita las redundancias, aporta flexibilidad a la visualización y potencia la capacidad de análisis.
¿Cómo realizar queries con cruces de datos con la sentencia JOIN en SQL?
En el lenguaje estructurado SQL, queries se refiere a las instrucciones que se envían a una base de datos para recuperar, cambiar o manipular datos. Se utiliza, por ejemplo, para seleccionar registros de una tabla, realizar cálculos, filtrar información con ciertos parámetros, eliminarla o actualizarla.
Cuando es necesario hacer un cruce de datos, es decir, combinar información de diferentes tablas, es necesario agregar a la instrucción la cláusula JOIN, de la cual hay varios tipos disponibles. Los más comunes son los siguientes:
INNER JOIN
Este tipo de JOIN en SQL combina filas de dos o varias tablas en función de una columna en común, devolviendo únicamente los registros que guardan correspondencia o correlación. La instrucción básica es:
- SELECT columnas FROM tabla1 INNER JOIN tabla2 ON tabla1.columna = tabla2.columna;
Muy útil en consultas en lenguaje SQL cuando es necesario obtener información relacionada de varias tablas, evitando datos no relacionados en el resultado final.
LEFT JOIN
Esta operación permite consultar todas las filas de una tabla de la izquierda (tabla1 o de origen) y aquellas filas coincidentes de una tabla de la derecha (tabla 2 o de unión). Cuando no existen coincidencias, se devuelven valores NULL.
La sintaxis básica de esta sentencia es:
- SELECT columnas FROM tabla1 LEFT JOIN tabla2 ON tabla1.columna = tabla2.columna;
La importancia de este JOIN en SQL radica en su capacidad para obtener resultados completos aun cuando no existe una correspondencia exacta entre las tablas. Muy útil cuando es necesario recuperar todos los registros de una tabla y combinarlos con los de una tercera, sin excluir aquellos que no tienen una correspondencia precisa.
RIGHT JOIN
Es muy similar a la operación anterior, solo que devuelve todas las filas de la tabla derecha (tabla 2) y aquellas de la tabla izquierda (tabla1) que presentan coincidencia. De igual manera, cuando no hay registros coincidentes arroja valores NULL.
La sentencia básica para realizar este cruce de datos es:
- SELECT columnas FROM tabla1 RIGHT JOIN tabla2 ON tabla1.columna = tabla2.columna;
FULL JOIN
Esta consulta combina todas las filas de la tabla izquierda y la tabla derecha, y cuando los registros no coinciden también devuelve los valores NULL en las columnas correspondientes.
La sintaxis para hacer este cruce de datos varía en función del sistema de gestión de bases de datos. Pero un ejemplo común es este: genérico:
- SELECT columnas FROM tabla1 FULL JOIN tabla2 ON tabla1.columna = tabla2.columna;
Los profesionales deben usar el tipo de JOIN que mejor se adapte a sus necesidades según la estructura de datos y el resultado esperado para cada consulta. Igual, para utilizarlos con eficacia, se deben tener algunos conocimientos sobre SQL, queries y condiciones con diferentes cláusulas, entre otros, que se pueden aprender en las 8 horas virtuales del Taller de queries con uso de JOIN en SQL Server de la Pontificie Universidad Católica de Chile.