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
LEFTJOIN right_table ON left_table.common_column = right_table.common_column;Propulsé par
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
LEFTJOIN departments ON employees.department_id = departments.id;Propulsé par
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
LEFTJOIN customers ON orders.customer_id = customers.id
WHERE orders.order_date ='2023-10-01';Propulsé par
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
LEFTJOIN categories ON products.category_id = categories.id
LEFTJOIN suppliers ON products.supplier_id = suppliers.id;Propulsé par
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
LEFTJOIN departments ON employees.department_id = departments.id;Propulsé par
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.
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.
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
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
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
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
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