sábado, 3 de septiembre de 2016

Tipos de JOIN en SQL Server

Los JOIN son palabras reservadas de Transact-SQL que nos permiten combinar dos o mas tablas en una base de datos en este caso SQL Server con el fin de obtener los registros necesarios para el proceso que estemos ejecutando.
Los JOIN se utilizan como filtros en las consultas de tablas de base de datos para obtener los registros que coinciden de dos o mas tablas y los registros que no coinciden entre dos o mas tablas.
Cuando ejecutamos una consulta utilizando un tipo de JOIN especifico se pueden obtener registros coincidentes uno al lado de otro si utilizamos el select * o en el orden que deseemos si especificamos los campos a seleccionar. Así también se pueden obtener los registros la primera o segunda tabla que no tienen coincidencia con la otra tabla donde los campos de los registros de esta aparecen con tipo de dato NULL.

Existen cinco tipos de JOIN:

INNER JOIN o JOIN
Permite interceptar dos tablas con el fin de extraer solo los registros que coinciden entre ambas tablas.



SINTAXIS:

SELECT <nombrecolumna>
FROM <tabla1>
INNER JOIN <tabla2>
ON <tabla1>.<nombrecolumna> = <tabla2>.<nombrecolumna>

EJEMPLO:

SELECT nombrePersona
FROM CiudadanoPeru 
INNER JOIN CiudadanoEEUU
ON CiudadanoPeru.id = CiudadanoEEUU.id

En este ejemplo queremos obtener los nombres de los ciudadanos peruanos que también tienen ciudadanía estadounidense o viceversa.


LEFT JOIN
Permite interceptar dos tablas con el fin de extraer los registros que coinciden entre ambas tablas y los registros que no coinciden de la tabla 1.


SINTAXIS:

SELECT <nombrecolumna>
FROM <tabla1>
LEFT JOIN <tabla2>
ON <tabla1>.<nombrecolumna> = <tabla2>.<nombrecolumna>

EJEMPLO:

SELECT nombrePersona
FROM CiudadanoPeru 
LEFT JOIN CiudadanoEEUU
ON CiudadanoPeru.id = CiudadanoEEUU.id

En este ejemplo queremos obtener los nombres de los ciudadanos peruanos que también tienen ciudadanía estadounidense o viceversa y los ciudadanos peruanos que no tienen ciudadanía estadounidense.


RIGHT JOIN
Permite interceptar dos tablas con el fin de extraer los registros que coinciden entre ambas tablas y los registros que no coinciden de la tabla 2.


SINTAXIS:

SELECT <nombrecolumna>
FROM <tabla1>
RIGHT JOIN <tabla2>
ON <tabla1>.<nombrecolumna> = <tabla2>.<nombrecolumna>

EJEMPLO:

SELECT nombrePersona
FROM CiudadanoPeru 
RIGHT JOIN CiudadanoEEUU
ON CiudadanoPeru.id = CiudadanoEEUU.id

En este ejemplo queremos obtener los nombres de los ciudadanos peruanos que también tienen ciudadanía estadounidense o viceversa y los ciudadanos estadounidenses que no tienen ciudadanía peruana.


FULL OUTER JOIN
Permite interceptar dos tablas con el fin de extraer los registros que coinciden entre ambas tablas y los registros que no coinciden de la tabla 1 y la tabla 2.


SINTAXIS:

SELECT <nombrecolumna>
FROM <tabla1>
FULL OUTER JOIN <tabla2>
ON <tabla1>.<nombrecolumna> = <tabla2>.<nombrecolumna>

EJEMPLO:

SELECT nombrePersona
FROM CiudadanoPeru 
FULL OUTER JOIN CiudadanoEEUU
ON CiudadanoPeru.id = CiudadanoEEUU.id

En este ejemplo queremos obtener los nombres de los ciudadanos peruanos que también tienen ciudadanía estadounidense o viceversa, los ciudadanos peruanos que no tienen ciudadanía estadounidense y los ciudadanos estadounidenses que no tienen ciudadanía peruana.


CROSS JOIN
Permite unir dos tablas cuyos registros serán el producto cartesiano de ambas tablas.

SINTAXIS:

SELECT <nombrecolumna>
FROM <tabla1>
CROSS JOIN <tabla2>

EJEMPLO:

SELECT nombrePersona
FROM CiudadanoPeru 
CROSS JOIN CiudadanoEEUU

En este ejemplo queremos obtener todas las combinaciones posibles entre los nombres de los ciudadanos peruanos y los nombres de los ciudadanos estadounidenses.




No hay comentarios:

Publicar un comentario