Left Join SQL : Tout savoir sur cette commande SQL

-
3
 m de lecture
-

SQL rend aisé la gestion de bases de données relationnelles, grâce aux jointures qui amènent à lier deux ou plusieurs tables grâce à des colonnes communes. La commande LEFT JOIN (ou LEFT OUTER JOIN) permet d’aller un peu plus loin…

SQL est un langage de requêtes qui est par nature associé aux bases de données relationnelles. S’il est autant apprécié, c’est parce que sa syntaxe est relativement simple à aborder et qu’elle ouvre la voie à la création et à la manipulation aisée de tables et à partir de là, de bases de données reliant ces tables. Sa force réside dans la possibilité d’extraire des informations très précises de vastes bases de données. 

Or, l’un de ses atouts de ce langage réside dans la capacité d’établir des jointures entre tables de données. Qu’est-ce à dire ? En combinant les données de plusieurs tables, nous pouvons obtenir des croisements particulièrement intéressants pour le Data Scientist.

Les jointures (JOIN) sont donc un élément essentiel de SQL. Or, il existe deux types de jointures que l’on peut envisager…

Quels sont les 2 types de jointures ?

Les deux types de jointures sont internes et externes. Qu’en est-il au juste ?

  • Internes (INNER) : nous avons là une jointure qui permet d’extraire des données selon des correspondances de colonne entre deux tables, en fonction d’une condition. Par exemple, deux ou plusieurs tables vont pouvoir être associées sur la base de la colonne nom, ville, numéro_produit… Ainsi, si nous avons une table qui liste les films d’un videoclub avec force détails (acteurs, réalisateur, année de sortie) et une autre, beaucoup plus simple qui indique quels films ont été loués, nous pourrions aisément obtenir la liste détaillée des films actuellement en location. La condition qui est mise à contribution est habituellement l’opérateur d’égalité mais ce peut être aussi <, <=, >, etc.
  • Externes (OUTER) : cette jointure permet d’extraire les enregistrements ayant des correspondances comme dans le cas précédent, mais de faire apparaître aussi les enregistrements n’ayant pas de correspondances entre la 1ère, la 2ème et autres tables. Nous allons voir plus loin quel peut être l’utilité d’un tel type de jointure externe.

Trois types de jointures externes

Nous avons trois types de jointures externes disponibles.

  • LEFT JOIN / LEFT OUTER JOIN : jointure « gauche » (avec la table qui suit la commande FROM)
  • RIGHT JOIN / RIGHT OUTER JOIN (avec la table qui est à droite de l’opérateur)
  • FULL JOIN / FULL OUTER JOIN (pour extraire les lignes des 2 tables)

Dans la pratique, c’est la commande LEFT JOIN qui est le plus souvent utilisée, car elle coule de source, comme nous le verrons dans un exemple plus bas.

La jointure LEFT JOIN

La commande LEFT JOIN est la plus utilisée dans le cadre de jointures externes. Elle permet de lister tous les éléments communs à deux tables mais aussi tous les éléments de la table de gauche (la table qui suit FROM).

Considérons deux tables : Table1 et Table2, Table 1 étant la table de gauche. La jointure LEFT JOIN va amener à lister tous les résultats de la table de gauche (Table1) même s’il n’existe pas de correspondance entre les deux tables.

La syntaxe pourrait être la suivante:

SELECT *

FROM table1

LEFT JOIN table 2

ON table1.id = table2.id

Donc la commande LEFT JOIN examine chaque ligne de la table1. Si elle trouve une correspondance, elle affiche la donnée trouvée dans table2. Mais que fait la commande LEFT JOIN lorsqu’il n’existe pas de correspondance entre les deux tables ? Elle renvoie alors la valeur NULLs pour la colonne en question.

Quel usage pour LEFT JOIN ?

Quel peut donc être l’intérêt d’une telle commande ? Et bien imaginons que nous ayons deux tables. La première Clients, donne la liste de tous les clients de l’entreprise. La seconde Commandes donne la liste de toutes les commandes effectuées par certains de ces clients.

Avec une jointure interne, nous pourrions avoir la liste de tous les clients qui ont passé une ou plusieurs commandes.

Supposons cependant que nous souhaitions connaître la situation de tous les clients de l’entreprise, et donc, qu’ils aient passé une commande ou non. Nous pourrions obtenir ce type d’informations avec LEFT JOIN.

Et donc, l’entreprise pourrait ainsi repérer les clients enregistrés mais qui n’ont jamais passé commande et donc pouvoir les cibler spécifiquement : leur proposer des offres promotionnelles, tâcher de comprendre pourquoi ils n’ont jamais été jusqu’à présent intéressé par des produits ou services de l’entreprise.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?