ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sql Joins


Enviado por   •  5 de Junio de 2014  •  3.097 Palabras (13 Páginas)  •  203 Visitas

Página 1 de 13

Tipos de Join en T-SQL y como usarlos…

17 10 2009

Hola, después de un tiempo sin postear – lo siento cuestiones de tiempo – regreso con otra ayudita en lo que es Transact, bueno aunque esto no es propio del Transact sino del SQL en si, vamos a ver como son los tipos de Joins que por cierto son muy útiles hasta imprescindibles diría yo para implementar nuestras consultas, ya entramos al campo de las consultas multitabla y voy a plantear un par de estas (que aunque sin lógica) son de ejemplo para que puedan entender lo mejor posible como funcionan los tipos de Join.

Empezando les comentaré que en SQL tenemos tipos de Join que funcionarán en Transact, propio de MS SQL Server, y que sólo cambian ciertas partes de la sintaxis para los demás lenguajes ojo todos al final hacen lo mismo, las bases son iguales, tenemos 2 tipos de Join (por definición almenos) los Joins Internos o de Combinación interna (Inner Join) y los Joins Externos o Combinación externa (Outer Join) que a su vez tienen sus diferencias dentro de cada uno de ellos, quiero explicarlos con ejemplos y lo más sencillo posible, no me detendré mucho en la sintaxis sino en como funcionan y como los podrías usar, porque yo sé que llegaste desesperadamente a mi blog por mera casualidad pero buscando una ayudita y no que te enreden más la vida xD

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)

Bueno empezaremos creando unas tablas son simples y quiero que sigas la lógica usaré letras para que al hacer las mezclas no te confundas y números para que sean fáciles de ubicar y entiendas que realiza cada consulta eso es lo más importante después tu podrás subirles el nivel de complejidad.

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)

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)

Y le agregamos algunos valores para los ejemplos:

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)

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)

Te recomiendo hacerles un SELECT a las tablas para que las examines y comprendas mejor los ejemplos, además que en cada ejemplo hagas SELECT al mismo tiempo a las tablas involucradas y puedas comparar el select de tus tablas con el resultado de las consultas de Join .

INNER JOIN

El Inner Join te permite combinar dos tablas mediante un campo en común 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 común) <,>,= (comparación) Tabla2(o Alias).NombreCampo(campo en común)

Se ve medio complicado asi, pero créeme que no lo es, conserva este “molde” por decirlo así que te puede ayudar en tus dudas sobretodo si eres nuevo en esto, bueno ahora si vamos a hacerlo en Transact y vamos a relacionar las tablas 1 y 2 para que puedas ver como queda. Este ejemplo será el mismo lo haré primero con alias y luego sin alias:

Inner Join Tabla 1 y Tabla2 (con alias)

--Con Alias

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

Inner Join Tabla 1 y Tabla2 (sin alias)

--Sin

...

Descargar como (para miembros actualizados)  txt (20.3 Kb)  
Leer 12 páginas más »
Disponible sólo en Clubensayos.com