INNER JOIN
Enviado por Andreevl • 2 de Marzo de 2015 • 352 Palabras (2 Páginas) • 130 Visitas
INNER JOIN
La forma más utilizada de combinación se llama INNER JOIN, y el resultado es el cálculo cruzado de todos los registros. Se combinan los registros de la tabla Empleados con la tabla Categorías, pero sólo van a permanecer los registros que satisfagan la condición especificada.
Podemos graficar este ejemplo con un diagrama de Venn:
Sintaxis:
SELECT e.Id, e.Apellido, c.Id, c.Nombre
FROM Empleados e
INNER JOIN Categorías c
ON e.Categoria = c.Id
LEFT JOIN
Si lo que necesitamos es una lista de los empleados, sin importar si pertenecen o no a una categoría, entonces lo que tenemos que utilizar es LEFT JOIN. El resultado que produce este JOIN son todas las filas de la tabla que se encuentre a la izquierda, sin importar si coinciden con las filas de la derecha.
Sintaxis:
SELECT e.Id, e.Apellido, c.Id, c.Nombre
FROM Empleados e
LEFT JOIN Categorías c
ON e.Categoria = c.Id
RIGHT JOIN
De la misma forma que podemos obtener todas las filas de la tabla de la izquierda con LEFT JOIN, con RIGHT JOIN obtenemos todas las filas de la tabla derecha, sin importar si coinciden con las de la tabla de la izquierda.
Sintaxis:
SELECT e.Id, e.Apellido, c.Id, c.Nombre
FROM Empleados e
RIGHT JOIN Categorías c
ON e.Categoria = c.Id
FULL JOIN
El FULL JOIN se utiliza cuando queremos obtener todas las filas de las dos tablas, sin importarnos que tengan coincidencias. MySQL no soporta este tipo de JOIN, por lo tanto para lograr el mismo resultado, hay que hacer LEFT JOIN + RIGHT JOIN.
Sintaxis:
SELECT e.Id, e.Apellido, c.Id, c.Nombre
FROM Empleados e
FULL JOIN Categorías c
ON e.Categoria = c.Id
CROSS JOIN
Finalmente, existe el CROSS JOIN, el cual no puede ser explicado con un diagrama de Venn. Lo que hace, es unir todo con todo, o sea, realiza el producto cartesiano. Como tenemos 14 empleados y 6 categorías (14x6 = 84), obtendremos 84 filas en el resultado. Este tipo de JOIN puede resultar peligroso en el rendimiento de la base de datos, si lo aplicamos a tablas con muchos datos.
Por obvias razones, no adjunto una imagen del resultado.
Sintaxis:
SELECT e.Id, e.Apellido, c.Id, c.Nombre
FROM Empleados e
CROSS JOIN Categorías c
...