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

Tipos De Inner Join En SQL


Enviado por   •  18 de Enero de 2012  •  2.068 Palabras (9 Páginas)  •  1.169 Visitas

Página 1 de 9

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 Alias

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

Como te das cuenta en la parte donde va el asterisco (*) es donde se piden los campos de las dos tablas relacionadas como ves aquí se trae todos los campos, pero si hubiera algunos en especifico que quieras mostrar escribes “tabla.campo” y eliges cuales quieres, mas adelante en esta consulta vemos que se escribe un nombre corto al costado del nombre de la tabla este es el Alias , luego de esto ya la tabla tiene asignado un nombre Alias y sólo se le llamará mediante este nombre corto igual que como se hacia con

...

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