Ir al contenido principal
Documentos
Funciones de cadenaDesencadenaBases de datosFunciones JSONFunciones matemáticasFunciones de fechaÍndicesSintaxis básicaGestión de Tablas y Esquemas

PostgreSQL LEFT JOIN

El `LEFT JOIN` en PostgreSQL es un tipo de unión que devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha. Si no hay ninguna coincidencia, el resultado es NULL en el lado de la tabla de la derecha.

Utilización

El `LEFT JOIN` se utiliza cuando quieres recuperar todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha. Es especialmente útil para encontrar registros no coincidentes en la tabla correcta.

sql
SELECT columns
FROM left_table
LEFT JOIN right_table ON left_table.common_column = right_table.common_column;

En esta sintaxis, `LEFT JOIN` garantiza que se incluyan todas las filas de `left_table` y se añadan las filas coincidentes de `right_table` cuando estén disponibles.

Ejemplos

1. Básico LEFT JOIN

sql
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;

Este ejemplo recupera todos los nombres de los empleados y sus nombres de departamento. Si un empleado no está asignado a ningún departamento, el nombre del departamento será NULO.

2. LEFT JOIN Con una cláusula WHERE

sql
SELECT orders.order_id, customers.customer_name
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.id
WHERE orders.order_date = '2023-10-01';

Aquí se seleccionan todos los pedidos realizados el 1 de octubre de 2023, incluidos los que no tienen registros de cliente coincidentes, que mostrarán `NULL` para `nombre_cliente`.

3. Encadenar varias JOIN IZQUIERDAS

sql
SELECT products.product_name, categories.category_name, suppliers.supplier_name
FROM products
LEFT JOIN categories ON products.category_id = categories.id
LEFT JOIN suppliers ON products.supplier_id = suppliers.id;

Este ejemplo muestra cómo utilizar varias cláusulas `LEFT JOIN` para reunir datos de tres tablas: `productos`, `categorías` y `proveedores`.

4. Manejar valores nulos con COALESCE

sql
SELECT employees.name, COALESCE(departments.department_name, 'No Department') AS department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;

En este ejemplo, se utiliza `COALESCE` para sustituir `NULL` por `Sin Departamento`, proporcionando un valor por defecto para los registros no coincidentes.

Consejos y buenas prácticas

  • Utilízalo para garantizar la inclusión. Aplica `LEFT JOIN` cuando necesites todos los registros de la tabla izquierda, independientemente de las coincidencias en la tabla derecha.
  • Optimiza con índices. Asegúrate de que las columnas utilizadas en la cláusula `ON` están indexadas para mejorar el rendimiento. Ten en cuenta los posibles efectos sobre el rendimiento cuando trabajes con grandes conjuntos de datos y uniones múltiples.
  • Maneja los NULL con cuidado. Prepárate para gestionar valores `NULL` en tu conjunto de resultados, especialmente cuando realices cálculos o transformaciones posteriores. Utiliza funciones como `COALESCE` para tratar eficazmente los valores `NULL`.
  • Combínalo con otras cláusulas. Utiliza `LEFT JOIN` junto con `WHERE`, `GROUP BY` u `ORDER BY` para refinar y organizar tus resultados de forma eficaz.