Uniones con LEFT JOIN - Curso de MySQL en un minuto - Capítulo 31

Continuamos con los joins. En esta ocasión te mostraré LEFT JOIN, el cual devuelve todas las filas de la tabla izquierda. Las filas de la tabla derecha se obtienen solo si hay coincidencia con las de la izquierda. Los valores que haya en la tabla izquierda, pero no en la derecha, saldrán como NULL.

Nos han pedido realizar una consulta con todos los clientes y sus pedidos. La dirección quiere que obtengamos también los clientes que no han realizado ningún pedido, así de paso, les enviarán publicidad más agresiva. Gracias a LEFT JOIN, lo podemos conseguir.

Código SQL

SELECT customers.customerNumber,
customers.customerName,
orders.orderNumber
FROM customers
LEFT JOIN orders ON
customers.customerNumber = orders.customerNumber  
ORDER BY orders.orderNumber ASC;

Resultado en el navegador

El resultado, es que nos muestra primero los clientes que no tienen pedidos hechos (este orden por el ORDER BY):

Left Join de SQL

Después, el resto de clientes que han realizado pedidos. Una fila por pedido.

Left Join de MySQL

La diferencia de hacer esto con LEFT JOIN e INNER JOIN, es que con INNER JOIN, saldrían solo los clientes que han realizado pedidos.