Accéder au contenu principal
Documents
FonctionsExpressionsKeywordsDéclarationsClauses

Clause LEFT JOIN de MySQL

La clause `LEFT JOIN` de MySQL est utilisée pour récupérer tous les tableaux du tableau de gauche et les tableaux correspondants du tableau de droite. Si aucune correspondance n'est trouvée, le résultat est `NULL` du tableau de droite.

Utilisation

La clause `LEFT JOIN` est généralement utilisée lorsque vous souhaitez inclure toutes les entrées du tableau de gauche et seulement celles du tableau de droite qui ont des valeurs correspondantes. Elle est particulièrement utile pour identifier les enregistrements non appariés dans le bon tableau.

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

Dans cette syntaxe, `LEFT JOIN` spécifie que toutes les lignes de `left_table` sont retournées, avec les lignes correspondantes de `right_table` et `NULL` lorsqu'il n'y a pas de correspondance. La présence de `NULL` indique que la ligne correspondante dans le tableau de droite n'existe pas.

Exemples

1. Basic JOINTE À LA GAUCHE

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 employés et les noms des départements correspondants. Si aucun département n'est attribué à un employé, le nom du département sera `NULL`, ce qui signifie qu'il n'y a pas d'enregistrement correspondant dans le tableau `departments`.

2. JOINTE À GAUCHE avec clause WHERE

SELECT customers.customer_id, orders.order_id
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id
WHERE orders.order_id IS NULL;

Ici, la requête récupère tous les clients qui n'ont pas passé de commande en vérifiant la présence de valeurs `NULL` dans le champ `order_id`, indiquant des enregistrements non concordants.

3. Enchaînement de plusieurs LEFT JOIN

SELECT students.name, courses.course_name, instructors.instructor_name
FROM students
LEFT JOIN enrollments ON students.student_id = enrollments.student_id
LEFT JOIN courses ON enrollments.course_id = courses.course_id
LEFT JOIN instructors ON courses.instructor_id = instructors.instructor_id;

Cet exemple montre comment enchaîner plusieurs `LEFT JOIN` pour obtenir une vue complète des étudiants, des cours et des enseignants, même si certains étudiants ne sont inscrits à aucun cours.

Conseils et bonnes pratiques

  • Précisez toujours la condition de jonction. Définissez clairement les colonnes à joindre pour éviter les produits cartésiens.
  • Utilisez LEFT JOIN si nécessaire. N'optez pour la "JOINTE DE GAUCHE" que si vous avez besoin de tous les tableaux de gauche, même s'il n'y a pas de correspondance dans le tableau de droite.
  • Vérifiez la présence de NULL. Utilisez des conditions comme `IS NULL` ou `IS NOT NULL` pour identifier les enregistrements non appariés. Les valeurs `NULL` indiquent qu'une ligne du tableau de droite ne correspond à aucune ligne du tableau de gauche.
  • Optimisez avec des index. Veillez à ce que les colonnes de jointure soient indexées pour améliorer les performances. Les index permettent de localiser rapidement les lignes et de réduire considérablement le temps d'exécution des requêtes.
  • Soyez prudent avec les grands ensembles de données. Les JOINTS DE GAUCHE sur les tableaux de grande taille peuvent être gourmands en ressources ; optimisez les requêtes pour traiter efficacement les données de grande taille.
  • Pensez à utiliser INNER JOIN lorsque c'est nécessaire. Si tous les résultats souhaités doivent avoir des correspondances dans les deux tableaux, une `INNER JOIN` peut être plus efficace et plus claire.

Amélioration de SQL pour les débutants

Acquérir les compétences SQL pour interagir avec vos données et les interroger.
Commencez à apprendre gratuitement