Vous êtes sur la page 1sur 4

AA

/ Académie / Cours MySQL / Jointure SQL

 Sommaire

Temps de lecture approximative : 13 minutes

JOINTURE SQL
Depuis le début du cours, nos requêtes portent uniquement sur une table à la fois. Les jointures en SQL permettent d’associer plusieurs
tables dans une même requête. Cela permet d'exploiter la puissance des bases de données relationnelles pour obtenir des résultats qui
combinent les données de plusieurs tables en même temps de manière efficace. Dans ce chapitre, nous aborderons deux types de
jointures différents avec les commandes SQL suivantes : INNER JOIN et LEFT JOIN .

Les jointures SQL consistent à associer les lignes de deux tables en associant l'égalité des valeurs d'une colonne d'une première table
par rapport à la valeur d'une colonne d'une seconde table. On nomme ce concept : la condition. L'intérêt des jointures ? Elles sont tout
d'abord un moyen d'optimiser les processus, en améliorant leur vitesse d'exécution. De manière générale, il est préférable de faire une
seule requête avec plusieurs jointures plutôt que plusieurs requêtes simples. Elles permettens également d'éviter les répétitions
d'informations.

INNER JOIN

Dans le langage SQL la commande INNER JOIN , est un type de jointure très commune pour lier plusieurs tables entre-elles dans une
même requête. Cette commande retourne les enregistrements lorsqu'il y a au moins une ligne dans chaque colonne listé dans la
condition. Autrement dit, lorsque la condition est respectée dans les deux tables.

Intersection de la sélection des enregistrements avec la commande INNER JOIN en SQL

L’utilisation la plus basique de cette commande s’effectue de la manière suivante :

SQL

SELECT *
FROM table_1
INNER JOIN table_2 ON table_1.une_colonne = table_2.autre_colonne;
Cette requête SQL va donc sélectionner grâce à la commande INNER JOIN les enregistrements des tables table_1 et table_2 lorsque
les données de la colonne une_colonne de la table table_1 est égal aux données de la colonne autre_colonne de la table table_2.

Afin de mettre en évidence l'utilisation de la commande INNER JOIN et de comprendre rapidement comment cette dernière fonctionne,
voyons sans plus attendre un exemple simple. Pour cet exemple, nous utiliserons les tables clients et commandes qui contientent les
colonnes et données suivantes. Ces dernières simulent les tables qui contiennent les clients et les commandes d'une entreprise
quelconque.

id prenom nom email

1 Marine Leroy mleroy@example.com

2 Jean René jrene@example.com

3 Ted Bundy tbundy@example.com

4 Paul Bismuth pbismuth@example.com

5 Caroline Rodriguez crodriguez@example.com

Table : clients

id_commande id_client date_ajout transporteur

1 1 2019-04-01 Mondial Relay

2 2 2019-04-02 Colissimo

3 2 2019-04-05 Colissimo

4 5 2019-04-08 Colissimo

5 9 2019-04-10 Colissimo

Table : commandes

Reprenons notre première requête SQL avec la commande INNER JOIN et complétons correctement cette dernière avec les tables
exemples. Nous souhaitons sélectionner uniquement les clients qui ont commandés avec leurs commandes respectives. Pour effectuer
cette opération, la requête est la suivante :

SQL

SELECT id_client, email, id_commande, date_ajout, transporteur


FROM clients
INNER JOIN commandes ON clients.id = commandes.id_client;

id_client email id_commande date_ajout transporteur

1 mleroy@example.com 1 2019-04-01 Mondial Relay

2 jrene@example.com 2 2019-04-02 Colissimo

2 jrene@example.com 3 2019-04-05 Colissimo

5 crodriguez@example.com 4 2019-04-08 Colissimo

Le résultat de la requête met en évidence la jointure et son utilité. On retrouve donc les commandes des clients #1, #2 et #5, car ils ont
commandé au moins une fois. A l'inverse, on ne retrouve pas les clients #3 et #4 car ils n'ont pas de commande associés. On peut
remarquer également l'absence de la commande #5. En effet, cette dernière est lié au client #9 qui n'est pas présente dans la table
clients. Cet enregistrement ne fait donc pas parti de l'intersection.
LEFT JOIN

Dans le langage SQL la commande LEFT JOIN , est un type de jointure commune pour lier plusieurs tables entre-elles dans une même
requête. Cette commande retourne tous les enregistrements de la table première table, celle de gauche (left), avec la
correspondance dans la deuxième table si la condition est respectée. En d'autres termes, ce type de jointure permet de retourner
tous les enregistrements d'une table avec les données liées d'une autre table si elles existent.

Intersection de la sélection des enregistrements avec la commande LEFT JOIN en SQL

L’utilisation la plus basique de cette commande s’effectue de la manière suivante :

SQL

SELECT *
FROM table_1
LEFT JOIN table_2 ON table_1.une_colonne = table_2.autre_colonne;

Cette requête SQL va donc sélectionner grâce à la commande LEFT JOIN tous les enregistrements de la table table_1 et les
enregistrements lorsque les données de la colonne une_colonne de la table table_1 est égal aux données de la colonne autre_colonne
de la table table_2.

Afin de mettre en évidence l'utilisation de la commande LEFT JOIN et de comprendre rapidement comment cette dernière fonctionne,
voyons sans plus attendre un exemple simple. Pour cet exemple, nous utiliserons les mêmes tables clients et commandes déjà décrites
ci-dessus.

Reprenons notre première requête SQL avec la commande LEFT JOIN et complétons correctement cette dernière avec les tables
exemples. Nous souhaitons sélectionner tous les clients avec leurs commandes respectives. Pour effectuer cette opération, la
requête est la suivante :

SQL

SELECT id_client, email, id_commande, date_ajout, transporteur


FROM clients
LEFT JOIN commandes ON clients.id = commandes.id_client;

id_client email id_commande date_ajout transporteur

1 mleroy@example.com 1 2019-04-01 Mondial Relay

2 jrene@example.com 2 2019-04-02 Colissimo

2 jrene@example.com 3 2019-04-05 Colissimo


id_client email id_commande date_ajout transporteur

3 tbundy@example.com      

4 pbismuth@example.com      

5 crodriguez@example.com 4 2019-04-08 Colissimo

Le résultat de la requête met en évidence la jointure avec la commande LEFT JOIN , son utilité et surtout sa différence avec la
commande INNER JOIN . On retrouve donc bien tous les clients avec les commandes respectives. Pour les clients #3 et #4 qui n'ont pas
de commandes, les colonnes sélectionnés de la table commandes sont vides.

JOINTURES SUR PLUS DE DEUX TABLES


Nos exemples précédents montrent comment faire une jointure entre deux tables. Il se peut que vous ayez besoin de faire une jointure
entre plus de deux tables. La syntaxe est la suivante pour les commandes INNER JOIN et LEFT JOIN . Cette syntaxe peut être répété
autant de fois que nécessaire.

INNER JOIN LEFT JOIN

SQL SQL

SELECT * SELECT *
FROM table_1 FROM table_1
INNER JOIN table_2 ON table_1.une_colonne = LEFT JOIN table_2 ON table_1.une_colonne =
table_2.autre_colonne table_2.autre_colonne
INNER JOIN table_3 ON table_1.une_colonne = LEFT JOIN table_3 ON table_1.une_colonne =
table_3.autre_colonne; table_3.autre_colonne;

Chapitre précédent Chapitre suivant

Vous aimerez peut-être aussi