viernes, 11 de diciembre de 2015

Diferencia entre left, inner y right join

Tutorial SQL: Diferencia entre left, inner y right join

En este artículo trataré de explicar de manera sencilla y con ejemplos muy visuales las diferencias que existen en SQL entre left join, inner join y right join.

Ejemplo de inner, left y right join: Para este ejemplo contaremos con dos tablas:

Tabla A
Tabla B
ABC
111
222
333
444

BDE
467
389
51011



Ejemplo INNER JOIN: Vamos a realizar un inner join de las tablas y visualizar el resultado.

SELECT Tabla * FROM Tabla A INNER JOIN Tabla B ON Tabla A.B = Tabla B.B
Tabla resultante:

ABCBDE
333389
444467

Como podemos observar, el inner join se realiza a través del campo B y muestra las filas de las tabla A y B cuyo campo B tiene el mismo valor. Como si fuera una intersección de conjuntos.

Ejemplo LEFT JOIN: Vamos a realizar un left join de las tablas y visualizar el resultado.
SELECT Tabla * FROM Tabla A LEFT JOIN Tabla B ON Tabla A.B = Tabla B.B
Tabla resultante:

ABCBDE
111NULLNULLNULL
222NULLNULLNULL
333389
444467

Como podemos observar, el left join devuelve todas las filas de la tabla de la izquierda (Tabla A) con sus correspondientes filas de la tabla de la derecha (Tabla B); En caso de no tener filas coincidentes en la tabla de la derecha, éstas se rellenan a NULL.
Resumiendo, el left join devuelve el mismo resultado que un inner join más las filas de la tabla de la izquierda que no tienen correspondencia en la tabla de la derecha, sustituyendo estos valores por NULL.

Ejemplo RIGHT JOIN: Vamos a realizar un right join de las tablas y visualizar el resultado.
SELECT Tabla * FROM Tabla A RIGHT JOIN Tabla B ON Tabla A.B = Tabla B.B
Tabla resultante:

ABCBDE
444467
333389
NULLNULLNULL51011

Como podemos observar, el right join devuelve todas las filas de la tabla de la derecha (Tabla B) con sus correspondientes filas de la tabla de la izquierda (Tabla A); En caso de no tener filas coincidentes en la tabla de la izquierda, éstas se rellenan a NULL.
Resumiendo, el right join devuelve el mismo resultado que un inner join más las filas de la tabla de la derecha que no tienen correspondencia en la tabla de la izquierda, sustituyendo estos valores por NULL.

Si te ha gustado el artículo sobre cómo corregir error "Apache shutdown unexpectedly" al iniciar Xampp te pido un favor: Haz clic sobre uno de los anuncios, con esto me ayudarás a mantener el Blog y pueda escribir más artículos.

0 comentarios:

Publicar un comentario