You are on page 1of 39

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

En SQL tenemos tipos de Join que funcionarn en Transact, propio de MS SQL Server, y que slo cambian ciertas partes de la sintaxis para los dems lenguajes ojo todos al final hacen lo mismo, las bases son iguales, tenemos 2 tipos de Join (por definicin al menos) los Joins Internos o de Combinacin interna (Inner Join) y los Joins Externos o Combinacin externa (Outer Join) que a su vez tienen sus diferencias dentro de cada uno de ellos.

TIPOS DE JOIN EN T-SQL Y COMO USARLOS


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) Combinacin completa (Full Outer Join)

TIPOS DE JOIN EN T-SQL Y COMO USARLOS


Creamos las tablas en nuestra Query de SQL Management Studio en una Base de datos que hayas creado. - Tabla1 (IdLetra, Valor1) - Tabla2 (IdLetra, Valor2) - Tabla3 (IdLetra, Valor3) - Tabla4 (IdLetra, Valor4)

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

CREATE TABLE Tabla1 (IdLetra varchar(5), Valor1 int) CREATE TABLE Tabla2 (IdLetra varchar(5), Valor2 int) CREATE TABLE Tabla3 (IdLetra varchar(5), Valor3 int) CREATE TABLE Tabla4 (IdLetra varchar(5), Valor4 int)

TIPOS DE JOIN EN T-SQL Y COMO USARLOS


INSERT INTO TABLA1 VALUES ('A',1) INSERT INTO TABLA1 VALUES ('B',2) INSERT INTO TABLA1 VALUES ('C',3) INSERT INTO TABLA1 VALUES ('D',4) INSERT INTO TABLA1 VALUES ('E',5) INSERT INTO TABLA1 VALUES ('F',6) INSERT INTO TABLA2 VALUES ('A',10) INSERT INTO TABLA2 VALUES ('B',20) INSERT INTO TABLA2 VALUES ('C',30) INSERT INTO TABLA2 VALUES ('D',40) INSERT INTO TABLA2 VALUES ('E',50) INSERT INTO TABLA2 VALUES ('F',60)

TIPOS DE JOIN EN T-SQL Y COMO USARLOS


INSERT INTO TABLA3 VALUES ('A',7) INSERT INTO TABLA3 VALUES ('B',8) INSERT INTO TABLA3 VALUES ('C',9) INSERT INTO TABLA3 VALUES ('D',10) INSERT INTO TABLA3 VALUES ('E',11) INSERT INTO TABLA3 VALUES ('F',100) INSERT INTO TABLA3 VALUES ('G',200) INSERT INTO TABLA4 VALUES ('A',12) INSERT INTO TABLA4 VALUES ('B',13) INSERT INTO TABLA4 VALUES ('C',14) INSERT INTO TABLA4 VALUES ('D',15) INSERT INTO TABLA4 VALUES ('E',16) INSERT INTO TABLA4 VALUES ('H',300) INSERT INTO TABLA4 VALUES ('I',400)

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

INNER JOIN
El Inner Join te permite combinar dos tablas mediante un campo en comn para hacer relaciones y consultas en este ejemplo vamos a utilizar un Inner Join para unir las tablas 1 y 2, Funciona as: SELECT tabla.(campo que quieres mostrar) FROM Tabla1 (Alias -opcional-) INNER JOIN Tabla2 (Alias opcional-) ON Tabla1(o Alias).NombreCampo(campo en comn) <,>,= (comparacin) Tabla2(o Alias).NombreCampo(campo en comn)

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

INNER JOIN
Inner Join Tabla 1 y Tabla2 ()
SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra = Tabla2.IdLetra

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Equivalencia (Equi-Join)

En este tipo es una especie de theta-join donde se hace una comparacin de Igualdad por lo tanto si el inner join es comparado con < , > estos no entraran en esta categora

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Equivalencia (Equi-Join)
SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra=Tabla2.IdLetra

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Natural (Natural-Join)

Propiamente en T-SQL no se puede hacer Natural Join pero es simple de explicar, el Natural Join te da los valores y elimina los campos repetidos en la relacin establecida

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Natural (Natural-Join)
SELECT T1.IdLetra ,T1.Valor1, T2.Valor2 FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.IdLetra =T2.IdLetra

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Cruzado (Cross-Join)
El Cross Join nos permite hacer un producto cartesiano entre las tablas que estamos comparando, tambin se puede dar de manera Implcita lo que llaman el operador proyeccin, al final funcionan igual:

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Cruzado (Cross-Join)
---CROSS JOIN NORMAL SELECT * FROM Tabla1 CROSS JOIN Tabla2 SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 FROM Tabla1 CROSS JOIN Tabla2

---CROSS JOIN IMPLICITO SELECT * FROM Tabla1 ,Tabla2 SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 from Tabla1,Tabla2

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

A s misma (Self-Join)
Este es un tipo un tanto raro de Join pero quien sabe la necesidad de tus consultas y necesites implementarla en una, esta te permite hacer un producto cartesiano de la tabla pero consigo misma osea un Auto Cross Join:

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

A s misma (Self-Join)

SELECT * FROM Tabla1 SELF JOIN Tabla1 ON Tabla1.IdLetra=Tabla1.IdLetra

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

OUTER JOIN
En el Outer Join la diferencia es que en este tipo de combinacin 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 relacin botara NULL en el resultado y este es omitido por defecto

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

OUTER JOIN

SELECT * FROM Tabla3 INNER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra


Como vers los valores sin equivalente son omitidos

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

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:

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Tabla Izquierda (Left Outer Join)

SELECT * FROM Tabla3 LEFT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

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:

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

De Tabla Derecha (Left Outer Join)

SELECT * FROM Tabla3 RIGHT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Combinacin Completa (Full Outer Join)


Con esta ltima nos permitir hacer una mezcla total y conservar todos los valores de ambas tablas, los valores que no tengan equivalencia aparecern acompaados de un Null y se muestran todos ellos, ejemplo:

TIPOS DE JOIN EN T-SQL Y COMO USARLOS

Combinacin Completa (Full Outer Join)

SELECT * FROM Tabla3 FULL OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

TABLA 1

TABLA 2

TABLA 3

TABLA 4

INNER JOIN
SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra = Tabla2.IdLetra

INNER JOIN
SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra = Tabla2.IdLetra WHERE Tabla2.Valor2>=30

De Equivalencia (Equi-Join)
SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra=Tabla2.IdLetra

Natural (Natural-Join)
SELECT T1.IdLetra ,T1.Valor1, T2.Valor2 FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.IdLetra =T2.IdLetra

Cruzado (Cross-Join)

---CROSS JOIN NORMAL SELECT * FROM Tabla1 CROSS JOIN Tabla2 SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 FROM Tabla1 CROSS JOIN Tabla2

Cruzado (Cross-Join)

---CROSS JOIN IMPLICITO SELECT * FROM Tabla1 ,Tabla2 SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 from Tabla1,Tabla2

A s misma (Self-Join)
SELECT * FROM Tabla1 SELF JOIN Tabla1 ON Tabla1.IdLetra=Tabla1.IdLetra

OUTER JOIN
SELECT * FROM Tabla3 INNER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Como vers los valores sin equivalente son omitidos

De Tabla Izquierda (Left Outer Join)


SELECT * FROM Tabla3 LEFT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

De Tabla Derecha (Left Outer Join)


SELECT * FROM Tabla3 RIGHT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Combinacin Completa (Full Outer Join)


SELECT * FROM Tabla3 FULL OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

You might also like