[
En el lenguaje SQL, ejecutamos diferentes consultas para generalmente crear informes que serán posteriormente utilizados para análisis y la tomada de alguna decisión, y para crear consultas cada vez más completas necesitamos utilizar varias tablas en conjunto y para eso usamos los JOINs.
Una cláusula JOIN en SQL, correspondiente a una operación de conjunción en álgebra relacional, combina columnas de una o más tablas en un banco de datos relacional. Ella crea un conjunto que puede ser salvo como una tabla o usado de la forma como está.
Un JOIN
es un medio de combinar columnas de una o más tablas, usando valores comunes a cada una de las. El estándar SQL ANSI especifica cinco tipos de JOIN
: INNER JOIN
, LEFT JOIN
, RIGHT JOIN
, FULL JOIN
e CROSS JOIN
.
Como un caso especial, una tabla (tabla base, visión o tabla juntada) puede juntarse a sí misma en una auto-unión (self-join).
En un banco de datos relacional, los datos son distribuidos en varias tablas lógicas. Para obtener un conjunto completo y significativo de datos, es necesario consultar datos de esas tablas usando junciones (JOINs).
Como ya fue mencionado arriba, existen diferentes tipos de JOINs en el SQL. Vamos a definir y ejemplificar cada uno de ellos.
SELECT <select_list>
FROM Tabla A
INNER JOIN Tabla B
ON A.Key = B.Key
La cláusula INNER JOIN compara cada línea de tabla A con las líneas de tabla B para encontrar todos os pares de líneas que satisfacen la condición de junción. Si la condición de junción fuera evaluada como TRUE
, los valores de la columna de las líneas correspondientes de las tablas A y B serán combinadas en una nueva línea e incluidos en el conjunto de resultados.
Retorna todos los registros de la tabla izquierda y los registros correspondientes de la tabla derecha.
SELECT <select_list>
FROM Tabla A
LEFT JOIN Tabla B
ON A.Key = B.Key
Para cada línea de la tabla A, la consulta la compara con todas las líneas de la tabla B. Si un par de líneas hiciera con que la condición de junción sea evaluada como TRUE
, los valores de la columna de esas líneas serán combinadas para formar una nueva línea que será incluida en el conjunto de resultados.
Si una línea de la tabla “izquierda” A no tuviera ninguna línea correspondiente de la tabla “derecha” B, la consulta irá combinar los valores de la columna de la línea de la tabla “izquierda” A con NULL
para cada valor de la columna de la tabla de la “derecha” B que no satisface la condición de junto (FALSE
).
En resumen, la cláusula LEFT JOIN
retorna todas las líneas de la tabla “izquierda” A y las líneas correspondientes o valores NULL
de la tabla “izquierda” A.
Retorna todos los registros de la tabla derecha y los registros correspondientes de la tabla izquierda.
SELECT <select_list>
FROM Tabla Al
ON A.Key = B.Key
La RIGHT JOIN
combina datos de dos o más tablas. La RIGHT JOIN
comienza a seleccionar datos de la tabla “derecha” B y a corresponder las líneas de la tabla “izquierda” A.
La RIGHT JOIN
retorna un conjunto de resultados que incluye todas las líneas de la tabla “derecha” B, con o sin líneas correspondientes en la tabla “izquierda” A. Se una línea en la tabla derecha B no tuviera ninguna línea correspondiente de la tabla “izquierda” A, la columna de la tabla “izquierda” A en el conjunto de resultados será nula igualmente a lo que acontece en el LEFT JOIN.
Retorna todos los registros cuando hubiera una correspondencia en la tabla izquierda o derecha.
SELECT <select_list>
FROM Tabla A
FULL JOIN Tabla B
ON A.Key = B.Key
La cláusula FULL JOIN
retorna todas las líneas de las tablas unidas, correspondidas o no, o sea, tú puedes decir que la FULL JOIN
combina las funciones de la LEFT JOIN
y de la RIGHT JOIN
. FULL JOIN
es un tipo de junción externa, por eso también es llamada junción externa completa.
Cuando no existen líneas correspondientes para la línea de la tabla izquierda, las columnas de la tabla derecha serán nulas. De la misma forma, cuando no existen líneas correspondientes para la línea de la tabla derecha, la columna da tabla izquierda será nula.
SELECT <select_list>
FROM Tabla A
CROSS JOIN Tabla B
La cláusula CROSS JOIN
retorna todas las líneas de las tablas por cruzamiento, o sea, para cada línea de la tabla izquierda queremos todas las líneas de la tabla derecha o viceversa. Él también es llamado de producto cartesiano entre dos tablas. Pero, para eso es necesario que ambas tengan el campo en común, para que la conexión exista entre las dos tablas.
Para entender mejor, piense que tenemos un banco de datos, donde tenemos una tabla FUNCIONARIO y una tabla CARGO, las podríamos tener varios cargos para un único FUNCIONARIO, y usando el CROSS JOIN
podemos traer todos los CARGOS de todos los FUNCIONARIOS.
Vimos que los JOINs en el lenguaje SQL son muy importantes, ellos nos permiten crear consultas más completas y más complejas de forma simple, utilizando pruebas lógicas (condición de junción), que son de extrema importancia cuando trabajamos con bancos de datos.
¿Te gusto el articulo y quieres saber más sobre SQL y JOINs? La Formación de SQL con MySQL te va a enseñar como crear JOINs y mucho más.
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||
---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
69289.36
CLP |
307472.10
COP |
65.90
USD |
264.35
PEN |
1431.74
MXN |
2978.57
UYU |
Plan Anual |
738.82
BOB |
105038.04
CLP |
466107.17
COP |
99.90
USD |
400.74
PEN |
2170.42
MXN |
4515.32
UYU |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana