Resumen: En este tutorial, aprenderá sobre la cláusula MySQL LEFT JOIN
y cómo aplicarla a los datos de consulta de dos o más tablas.
Introducción a MySQL LEFT JOIN
el LEFT JOIN
le permite consultar datos de dos o más tablas. Similar a la cláusula INNER JOIN
, la cláusula LEFT JOIN
es una cláusula opcional de la instrucción SELECT
, que aparece Inmediatamente después de la cláusula FROM
.,
Supongamos que desea unir dos tablas t1
y t2
.
la siguiente instrucción muestra cómo usar la cláusula LEFT JOIN
para unir las dos tablas:
Code language: SQL (Structured Query Language) (sql)
Cuando usa la cláusula LEFT JOIN
, se introducen los conceptos de la tabla izquierda y la tabla derecha.
en la sintaxis anterior, t1
es la tabla izquierda y t2
es la tabla derecha.,
la cláusulaLEFT JOIN
Selecciona los datos a partir de la tabla izquierda (t1
). Coincide cada fila de la tabla izquierda (t1
) con cada fila de la tabla derecha(t2
) basado en el join_condition
.
si las filas de ambas tablas causan que la condición de unión se evalúe como TRUE
, LEFT JOIN
combina columnas de filas de ambas tablas en una nueva fila e incluye esta nueva fila en las filas de resultados.,
en caso de que la fila de la tabla izquierda (t1
) no coincida con ninguna fila de la tabla derecha(t2
), el LEFT JOIN
todavía combina columnas de filas de ambas tablas en una nueva fila e incluye la nueva fila en las filas de resultados. Sin embargo, utiliza NULL
para todas las columnas de la fila de la tabla derecha.
En otras palabras, LEFT JOIN
devuelve todas las filas de la tabla izquierda independientemente de si una fila de la tabla izquierda tiene una fila coincidente de la tabla derecha o no., Si no hay coincidencia, las columnas de la fila de la tabla derecha contendrán NULL
.
el siguiente diagrama de Venn le ayuda a visualizar cómo funciona la cláusula LEFT JOIN
:
MySQL LEFT JOIN examples
tomemos algunos ejemplos de uso de la cláusula LEFT JOIN
.,
1) usando la cláusula de unión izquierda de MySQL para unir dos tablas
vea las siguientes tablas customers
y orders
en la base de datos de ejemplo.
Cada cliente puede tener cero o más órdenes, mientras que cada orden debe pertenecer a uno de los clientes.,
esta consulta utiliza la cláusula LEFT JOIN
para encontrar a todos los clientes y sus pedidos:
Code language: SQL (Structured Query Language) (sql)
alternativamente, puede guardar algo de escritura utilizando alias de tabla:
Code language: SQL (Structured Query Language) (sql)
en este ejemplo:
- El
customers
es la tabla izquierda yorders
es la tabla correcta. - la cláusula
LEFT JOIN
devuelve a todos los clientes, incluidos los clientes que no tienen pedido., Si un cliente no tiene ningún pedido, los valores en la columnaorderNumber
ystatus
sonNULL
.,
debido a que tanto los clientes de la tabla como los pedidos tienen el mismo nombre de columna ( customerNumber
) en la condición de unión con el operador igual, puede usar la sintaxis USING de la siguiente manera:
Code language: SQL (Structured Query Language) (sql)
las siguientes cláusulas son equivalentes:
Code language: SQL (Structured Query Language) (sql)
y
Code language: SQL (Structured Query Language) (sql)
si reemplaza la cláusula LEFT JOIN
por la cláusula INNER JOIN
, obtendrá los únicos clientes que tienen al menos un pedido.,
2) usando la cláusula de unión izquierda de MySQL para encontrar filas no coincidentes
la cláusula LEFT JOIN
es muy útil cuando desea encontrar filas en una tabla que no tiene una fila coincidente de otra tabla.,»> para encontrar a los clientes que no tienen fin:
Code language: SQL (Structured Query Language) (sql)
3) El uso de MySQL LEFT JOIN para unir tres tablas
las tres tablas siguientes employees
, customers
y payments
:
en Este ejemplo utiliza dos LEFT JOIN
cláusulas para unirse a los tres tablas: employees
, customers
, y payments
.,
Code language: SQL (Structured Query Language) (sql)
en Esta imagen se muestra el resultado parcial:
Cómo funciona.
- El primer
LEFT JOIN
devuelve todos los empleados y clientes que representaron a cada empleado oNULL
si el empleado no está a cargo de ningún cliente. - segundo
LEFT JOIN
devuelve los pagos de cada cliente representado por un empleado oNULL
si el cliente no tiene ningún pago.
Condición en la cláusula where vs, En la cláusula
vea el siguiente ejemplo.
Code language: SQL (Structured Query Language) (sql)
en Este ejemplo se utiliza la etiqueta LEFT JOIN
cláusula de consultar los datos de las tablas orders
y orderDetails
. La consulta devuelve el pedido y sus elementos de línea del número de pedido 10123
.,
sin Embargo, si mueve la condición de la etiqueta WHERE
cláusula de la etiqueta ON
cláusula:
Code language: SQL (Structured Query Language) (sql)
Ella tiene un significado diferente.,
en este caso, la consulta devuelve todos los pedidos, pero solo el pedido 10123
tendrá elementos de línea asociados como en la siguiente imagen:
observe que para la cláusula INNER JOIN
, la condición en la cláusula ON
es equivalente a la condición en la cláusula WHERE
.
en este tutorial, ha aprendido cómo usar la cláusula MySQL LEFT JOIN
para unir datos de dos o más tablas.,
- ¿Fue útil este tutorial?
- YesNo