MySQL LEFT JOIN (Español)

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, t1es 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 – Venn Diagram

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 customersy 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 y orders es la tabla correcta.
  • la cláusulaLEFT 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 columna orderNumber y status son NULL.,

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 o NULL si el empleado no está a cargo de ningún cliente.
  • segundo LEFT JOIN devuelve los pagos de cada cliente representado por un empleado o NULL 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *