SQL LEFT JOIN: Resultados de tabla izquierda

En SQL, el comando SQL LEFT JOIN (también llamado LEFT OUTER JOIN) es una forma de unión entre 2 tablas. Esto permite enumerar los resultados de la tabla izquierda (izquierda = izquierda) incluso si no hay coincidencia en la segunda tabla.

sql left join

Sintaxis SQL Left Join

Para obtener las informaciones de la tabla1, incluso si no hay coincidencia con la tabla2, debe realizar una consulta con el comando SQL left join, con la sintaxis siguiente.

SELECT *
FROM table1
LEFT JOIN table2 ON table1.id = table2.fk_id

La consulta también se puede escribir de la siguiente manera:

SELECT *
FROM table1
LEFT OUTER JOIN table2 ON table1.id = table2.fk_id

Esta consulta SQL left join es particularmente útil para recuperar información de la tabla1 mientras se recuperan los datos asociados, incluso si no hay coincidencia con la tabla2. Es decir, si no hay coincidencia, las columnas de la tabla2 valdrán todo NULL.

Ejemplo Sql Left Join

Imaginemos una aplicación que contiene usuarios y comandos para cada uno de estos usuarios. contiene una tabla para los usuarios y guarda sus compras en una segunda tabla. Las 2 tablas se conectan mediante la columna utilisateur_id de la tabla de pedidos. Esto le permite asociar un pedido con un usuario.

Tabla de usuarios:

idnombrenombrecorreo electrónicociudad
1QueridoMarechalaime.marechal@example.comParís
2EsméeLuzesmee.lefort@example.comLyon
3MarinaPaulm.prevost@example.comLille
4LucRollandlucrolland@example.comMarsella

 

Comando Table:

utilisateur_iddate_achatnum_factureprix_total
12013-01-23A00103203.14
12013-02-14A00104124.00
22013-02-17A00105149.45
22013-02-21A00106235.35
52013-03-02A0010747.58

Para enumerar a todos los usuarios con sus pedidos y también mostrar los usuarios que no han realizado compras, es posible utilizar la siguiente consulta:

SELECT *
FROM utilisateur
LEFT JOIN commande ON utilisateur.id = commande.utilisateur_id

Resultados:

idnombrenombredate_achatnum_factureprix_total
1QueridoMarechal2013-01-23A00103203.14
1QueridoMarechal2013-02-14A00104124.00
2EsméeLuz2013-02-17A00105149.45
2EsméeLuz2013-02-21A00106235.35
3MarinaPaulNULONULONULO
4LucRollandNULONULONULO

Las últimas líneas muestran a los usuarios que no han realizado ningún pedido. La fila devuelve NULL para las columnas sobre compras que no realizaron.

Filtrar por campos NULL

Tenga cuidado, NULL no es una cadena de caracteres. Para filtrar estos caracteres debe utilizar el comando IS NULL. Por ejemplo, para enumerar usuarios que no han realizado compras, es posible utilizar la siguiente consulta.

SELECT id, prenom, nom, utilisateur_id
FROM utilisateur
LEFT JOIN commande ON utilisateur.id = commande.utilisateur_id
WHERE utilisateur_id IS NULL

Resultados:

idnombrenombreutilisateur_id
3MarinaPaulNULO
4LucRollandNULO

 

Unión izquierda vs Unión derecha

Veamos algunas diferencias más entre el comando SQL Left Join y Right Join a través de una tabla de comparación para una comprensión clara:

Left Join(Unión a la izquierda) Right Join (Unión a la derecha)
La combinación izquierda en SQL Left Join contiene los registros coincidentes de las dos tablas y registros adicionales no coincidentes de la tabla izquierda que reside a la izquierda de la cláusula de combinación. Para estos registros no coincidentes, las columnas de la tabla de la derecha se rellenan como nulas.La unión derecha contiene los registros coincidentes de las dos tablas y registros adicionales no coincidentes de la tabla derecha que reside a la derecha de la cláusula de unión. Para estos registros no coincidentes, las columnas de la tabla de la izquierda se rellenan como nulas.
La combinación izquierda es una combinación externa izquierda en ANSI SQL.La combinación derecha es una combinación externa derecha en ANSI SQL.
Unión izquierda = Todos los registros coincidentes + registros no coincidentes de la tabla izquierdaUnión izquierda = Todos los registros coincidentes + registros no coincidentes de la tabla derecha
Mientras se ejecuta la consulta que contiene la combinación izquierda, primero se recuperan todos los registros de la tabla izquierda y luego, mediante bucles anidados, se recuperan los registros coincidentes de los valores de la columna de la tabla derecha y, para otros registros no coincidentes, se completa el valor NULL.Mientras se ejecuta la consulta que contiene la unión derecha, primero se recuperan todos los registros de la tabla derecha y luego, mediante bucles anidados, se recuperan los registros coincidentes de los valores de la columna de la tabla izquierda y, para otros registros no coincidentes, se completa el valor NULL.
*= se usa para representar la combinación externa izquierda en Transact-SQL.=* se usa para representar la combinación externa derecha en Transact-SQL.

Conclusión

En SQL LEFT JOIN es una herramienta poderosa en su kit de herramientas de análisis de datos SQL que le permite combinar dos o más tablas para crear información significativa sobre sus datos. Al usar en SQL LEFT JOIN, puede retener todas las filas de una tabla mientras aún se une a otra tabla que puede no tener una fila coincidente , lo que le permite explorar las relaciones entre las tablas, incluso cuando faltan puntos de datos.

Al usar LEFT JOIN, es importante especificar la tabla de la izquierda y la tabla de la derecha, y asegurarse de que la condición de combinación esté configurada correctamente para que se una en las columnas adecuadas. Además, querrá tener en cuenta sus cláusulas GROUP BY y ORDER BY para asegurarse de que sus datos se agrupen y ordenen correctamente.

En general, en sql LEFT JOIN son una herramienta crucial en el conjunto de herramientas de cualquier desarrollador de SQL y se pueden usar para crear informes y análisis detallados que le permitan tomar decisiones basadas en datos.

Deja un comentario