Accéder au contenu principal
Documents
Gestion des tableaux et des schémasSyntaxe de baseDéclencheursBases de donnéesFonctions de la dateFonctions des chaînes de caractèresFonctions mathématiquesFonctions JSONIndexes

PostgreSQL LEFT JOIN

Le `LEFT JOIN` dans PostgreSQL est un type de jointure qui retourne tous les tableaux de la table de gauche et les tableaux correspondants de la table de droite. S'il n'y a pas de correspondance, le résultat est NULL du côté du bon tableau.

Utilisation

La "JOINTE DE GAUCHE" est utilisée lorsque vous souhaitez récupérer tous les tableaux de gauche et les enregistrements correspondants dans le tableau de droite. Elle est particulièrement utile pour trouver des enregistrements non appariés dans le bon tableau.

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

Dans cette syntaxe, `LEFT JOIN` garantit que toutes les lignes de `left_table` sont incluses, et que les lignes correspondantes de `right_table` sont ajoutées lorsqu'elles sont disponibles.

Exemples

1. Basic JOINTE À LA GAUCHE

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

Cet exemple permet de récupérer tous les noms des employés et de leur département. Si un employé n'est pas affecté à un département, le nom du département sera NUL.

2. LEFT JOIN avec une clause 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';

Ici, toutes les commandes passées le 1er octobre 2023 sont sélectionnées, y compris celles qui n'ont pas d'enregistrement client correspondant, ce qui affichera `NULL` pour `customer_name`.

3. Enchaînement de plusieurs LEFT JOIN

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;

Cet exemple montre comment utiliser plusieurs clauses `LEFT JOIN` pour rassembler les données de trois tableaux : `products`, `categories`, et `suppliers`.

4. Traitement des valeurs NULL avec 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;

Dans cet exemple, `COALESCE` est utilisé pour remplacer `NULL` par 'No Department', fournissant ainsi une valeur par défaut pour les enregistrements non appariés.

Conseils et bonnes pratiques

  • Utiliser pour assurer l'inclusion. Appliquez la fonction "JOINTE DE GAUCHE" lorsque vous avez besoin de tous les tableaux de gauche, sans tenir compte des correspondances dans le tableau de droite.
  • Optimisez avec des index. Assurez-vous que les colonnes utilisées dans la clause `ON` sont indexées pour de meilleures performances. Soyez conscient des impacts potentiels sur les performances lorsque vous travaillez avec de grands ensembles de données et des jointures multiples.
  • Manipulez les NULL avec précaution. Soyez prêt à gérer les valeurs `NULL` dans votre ensemble de résultats, en particulier lorsque vous effectuez d'autres calculs ou transformations. Utilisez des fonctions comme `COALESCE` pour gérer efficacement les valeurs `NULL`.
  • Combiner avec d'autres clauses. Utilisez `LEFT JOIN` en conjonction avec `WHERE`, `GROUP BY`, ou `ORDER BY` pour affiner et organiser vos résultats de manière efficace.