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