El JOIN se utiliza en SQL para consultar datos de dos o más tablas basándose en la relación entre columnas clave. Las tablas a menudo se relacionan mediante claves primarias únicas, que permiten vincular datos sin repetirlos. Existen diferentes tipos de JOIN como INNER, LEFT, RIGHT y FULL OUTER para devolver filas con o sin coincidencias en ambas tablas.
1. JOIN
se utiliza en una sentencia SQL para consultar datos de dos o más mesas, sobre
la base de una relación entre ciertas columnas de estas tablas.
Las tablas de una base de datos a menudo se relacionan el uno al otro con las
teclas.
Una clave principal es una columna (o una combinación de columnas) con un
valor único para cada fila. Cada valor de la clave principal deben ser únicos
dentro de la tabla. El propósito es enlazar los datos juntos, a través de
tablas, sin repetir todos los datos en cada tabla.
2. DIFERENCIACION
• Antes de continuar con ejemplos, vamos a enumerar los tipos de
unión que puede utilizar, y las diferencias entre ellos.
• INNER JOIN : Devuelve las filas cuando hay al menos un partido en
ambas tablas
• LEFT JOIN : Devolver todas las filas de la tabla de la
izquierda, incluso si no hay coincidencias en la tabla de la derecha
• RIGHT JOIN : Devolver todas las filas de la tabla de la
derecha, incluso si no hay coincidencias en la tabla de la izquierda
• Outer Join :la diferencia es que en este tipo de combinación
se mantienen los valores que no tienen equivalente en la otra
tabla
• Join completo : devuelven filas cuando hay un partido en una de las
mesas
3. • Tipos de Join:
• 1. Internos (Inner Join)
• De Equivalencia (Equi – Join)
• Natural (Natural – Join)
• Cruzado (Cross – Join)
• En sí mismo (Self – Join)
• 2. Externos (Outer Join)
• De tabla Izquierda (Left Outer Join)
• De tabla Derecha (Right Outer Join)
• Combinación completa (Full Outer Join)
4.
5.
6.
7. OUTER JOIN
En el Outer Join la diferencia es que en este tipo de combinación se mantienen los
valores que no tienen equivalente en la otra tabla, esto no sucede en el Inner Join que
cuando las tablas no tienen valores equivalentes la relación botaría NULL en el resultado
y este es omitido por defecto, hay maneras de conservarlos usando Inner Join
especificando IsNull o Null, pero no nos compliquemos más, veamos los ejemplos del
Outer Join para esto relacionaremos las tablas 3 y 4 que contiene algunos valores sin
equivalente en la otra, primero hagamos un Inner Join comprobando así que no nos dá
los valores Null:
--INNER JOIN
SELECT * FROM Tabla3 INNER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra
Como verás los valores sin equivalente son omitidos
• -De Tabla Izquierda (Left Outer Join)
El Left Outer Join nos permite hacer una mezcla y conservar todos los valores de la tabla
izquierda (la primera tabla que se menciona en la consulta) sin importar que no tengan
equivalente con la de la derecha, veamos el ejemplo:
--LEFT OUTER JOIN
SELECT * FROM Tabla3 LEFT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra
8. • -De Tabla Derecha (Left Outer Join)
El Right Outer Join nos permite hacer una mezcla y conservar todos los
valores de la tabla derecha (la segunda tabla que se menciona en la
consulta) sin importar que no tengan equivalente con la primera, el
caso contrario como ven, vamos al ejemplo:
--RIGHT OUTER JOIN
SELECT * FROM Tabla3 RIGHT OUTER JOIN Tabla4 ON Tabla3.IdLetra =
Tabla4.IdLetra
• -Combinación Completa (Full Outer Join)
Con esta útlima nos permitirá hacer una mezcla total y conservar todos
los valores de ambas tablas, los valores que no tengan equivalencia
aparecerán acompañados de un Null y se mostrán todos ellos,
ejemplo:
--FULL OUTER JOIN
SELECT * FROM Tabla3 FULL OUTER JOIN Tabla4 ON Tabla3.IdLetra =
Tabla4.IdLetra