Guide Complet sur le Left Join en SQL pour les Débutants

Bonjour à tous, aspirants passionnés de SQL ! Aujourd'hui, nous allons entreprendre un voyage passionnant à travers le monde des Left Joins en SQL. Ne vous inquiétez pas si vous êtes nouveaux dans le domaine de la programmation ; je serai votre guide amical, expliquant tout étape par étape. Alors, prenez une tasse de café et plongons dedans !

SQL - Left Join

Qu'est-ce qu'un Outer Join ?

Avant de plonger dans les Left Joins, comprenons d'abord ce qu'est un Outer Join. Imaginez que vous organiser un party et que vous avez deux listes : une avec les noms de vos amis et une autre avec leurs boissons favorites. Un Outer Join est comme combiner ces listes, même si certains amis n'ont pas spécifié leur boisson favorite ou si certaines boissons ne sont pas attribuées à aucun ami.

En termes de SQL, un Outer Join nous permet de combiner des lignes de deux ou plusieurs tables basées sur une colonne relationnelle, même lorsque il n'y a pas de correspondance dans l'une des tables. Il existe trois types d'Outer Joins :

Type de Join Description
Left Join Retourne toutes les lignes de la table de gauche et les lignes correspondantes de la table de droite
Right Join Retourne toutes les lignes de la table de droite et les lignes correspondantes de la table de gauche
Full Outer Join Retourne toutes les lignes lorsqu'il y a une correspondance dans la table de gauche ou de droite

Pour ce tutoriel, nous nous concentrerons sur le Left Join, qui est l'Outer Join le plus couramment utilisé.

Le Left Join en SQL

Un Left Join retourne tous les enregistrements de la table de gauche (la première table mentionnée dans la requête) et les enregistrements correspondants de la table de droite. Si il n'y a pas de correspondance, le résultat est NULL du côté droit.

Regardons un exemple. Supposons que nous avons deux tables : Students et Courses.

-- Table Students
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50)
);

INSERT INTO Students VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie');

-- Table Courses
CREATE TABLE Courses (
CourseID INT PRIMARY KEY,
CourseName VARCHAR(50),
StudentID INT
);

INSERT INTO Courses VALUES
(101, 'SQL Basics', 1),
(102, 'Advanced SQL', 2),
(103, 'Data Analysis', NULL);

Maintenant, utilisons un Left Join pour voir tous les étudiants et leurs cours (si applicable) :

SELECT Students.Name, Courses.CourseName
FROM Students
LEFT JOIN Courses ON Students.StudentID = Courses.StudentID;

Le résultat serait comme ceci :

Name CourseName
Alice SQL Basics
Bob Advanced SQL
Charlie NULL

Comme vous pouvez le voir, Charlie apparaît dans le résultat même s'il n'est pas inscrit dans aucun cours. C'est la magie du Left Join !

Utiliser Left Join pour Combinaison de Multiples Tables

Maintenant que nous avons maîtrisé les bases, levons le défi. Dans des scénarios du monde réel, vous devrez souvent joindre plus de deux tables. Ne vous inquiétez pas ; Left Join est là pour vous !

Ajoutons une troisième table à notre exemple : Instructors.

CREATE TABLE Instructors (
InstructorID INT PRIMARY KEY,
InstructorName VARCHAR(50),
CourseID INT
);

INSERT INTO Instructors VALUES
(201, 'Prof. Smith', 101),
(202, 'Dr. Johnson', 102),
(203, 'Ms. Williams', NULL);

Maintenant, joignons les trois tables pour obtenir une vue complète des étudiants, de leurs cours et des instructeurs :

SELECT Students.Name AS StudentName,
Courses.CourseName,
Instructors.InstructorName
FROM Students
LEFT JOIN Courses ON Students.StudentID = Courses.StudentID
LEFT JOIN Instructors ON Courses.CourseID = Instructors.CourseID;

Cette requête joint d'abord Students avec Courses, puis le résultat avec Instructors. Le résultat pourrait ressembler à ceci :

StudentName CourseName InstructorName
Alice SQL Basics Prof. Smith
Bob Advanced SQL Dr. Johnson
Charlie NULL NULL

N'est-il pas incroyable comment nous pouvons combiner des informations provenant de multiples tables si facilement ?

Left Join avec Clause WHERE

Parfois, vous pourriez vouloir filtrer les résultats de votre Left Join. C'est là que la clause WHERE devient utile. Supposons que nous voulons trouver tous les étudiants qui ne sont pas inscrits dans un cours :

SELECT Students.Name
FROM Students
LEFT JOIN Courses ON Students.StudentID = Courses.StudentID
WHERE Courses.CourseID IS NULL;

Cette requête retournerait :

Name
Charlie

La clause WHERE filtre toutes les lignes où Courses.CourseID n'est pas NULL, nous donnant uniquement les étudiants sans cours.

Souvenez-vous, la clause WHERE est appliquée après l'opération de jointure. Si vous voulez filtrer la table de droite avant de joindre, vous devriez utiliser la clause ON à la place.

Conclusion

Et voilà, amis ! Nous avons fait le voyage à travers le territoire des Left Joins en SQL, des concepts de base aux applications plus avancées. Les Left Joins sont des outils puissants dans votre boîte à outils SQL, vous permettant de combiner des données de multiples tables même lorsque il n'y a pas de correspondance parfaite.

À mesure que vous pratiquez et gagnez en expérience, vous trouverez que les Left Joins deviennent une seconde nature. Ils sont comme le couteau suisse de SQL - polyvalents, utiles et toujours là lorsque vous en avez besoin.

Souvenez-vous, la clé pour maîtriser SQL est la pratique. Alors, n'ayez pas peur d'expérimenter avec différentes requêtes et structures de tables. Bonne programmation, et puissent vos jointures toujours être fructueuses !

Credits: Image by storyset