Vous êtes sur la page 1sur 6

Requêtes Multi tables

Jointures SQL : tout comprendre sur l’association de tables


Les jointures permettent de récupérer des données dans une base de données où les tables ont
des relations entre elles. Elles permettent d’exploiter les tables d’une base de données, de les lier
et d’obtenir des résultats e caces. Il en existe plusieurs types, nous allons aborder les
principales.

- Table Etudiant

numero nom prenom age groupe_td

1 Dupont Teo 15 TD1

2 Sourti Jules 20 TD1

3 Benazi Ali 16 TD1

4 Bellin Ines 16 TD2

5 Porter Sophie 16 TD2

6 SY Fatou 21 TD2

- Table Ville
Contenant la ville de naissance des étudiants

numero ville

1 Toulouse

3 Marseille

5 Paris

6 Lyon

7 Nice

8 Lille

1. INNER JOIN

La jointure interne ou INNER JOIN permet de retourner les données quand la condition est vraie
dans les deux tables.

Comme le montre le schéma, ce type de jointure va permettre de concaténer les tuples des 2
tables deux à deux si une condition est satisfaite.

Il est nécessaire de spéci er les attributs à utiliser pour e ectuer la jointure. On utilise le mot
clé ON suivi de l’égalité souhaitée après avoir renseigné les tables dans l’INNER JOIN.
fi
ffi
ff
SELECT *
FROM etudiant
INNER JOIN ville
ON étudiant.numero = ville.numero

numero nom prenom age groupe_td Ville

1 Dupont Teo 15 TD1 Toulouse

3 Benazi Ali 16 TD1 Marseille

5 Porter Sophie 16 TD2 Paris

6 SY Fatou 21 TD2 Lyon

Ici en faisant une INNER JOIN entre les deux tables on obtient seulement les numero qui sont
présents dans la table etudiant et dans la table ville.

2. LEFT JOIN

La jointure à gauche ou LEFT JOIN est une jointure entre 2 tables qui permet de retourner tous les
enregistrements de la table de gauche même s’il n’y a pas de correspondance avec la table de
droite. S’il n’y a pas de correspondance, les valeurs manquantes sont dé nies à NULL.
Comme pour le INNER JOIN, Il est nécessaire de spéci er les attributs à utiliser pour e ectuer la
jointure : On utilise le mot clé ON suivi de l’égalité souhaitée après avoir renseigné les tables dans
le LEFT JOIN.
fi
fi
ff
SELECT *
FROM etudiant
LEFT JOIN ville
ON étudiant.numero = ville.numero

numero nom prenom age groupe_td Ville

1 Dupont Teo 15 TD1 Toulouse

2 Sourti Jules 20 TD1 NULL

3 Benazi Ali 16 TD1 Marseille

4 Bellin Ines 16 TD2 NULL

5 Porter Sophie 16 TD2 Paris

6 SY Fatou 21 TD2 Lyon

Ici on fait une requête LEFT JOIN par rapport à la table ville donc on a che toutes les lignes
lorsque le numero est présent dans la table gauche donc dans la table étudiant.

3. RIGHT JOIN

La jointure à droite ou RIGHT JOIN est une jointure entre 2 tables qui permet de retourner tous les
enregistrements de la table de droite même s’il n’y a pas de correspondance avec la table de
gauche. S’il n’y a pas de correspondance, les valeurs manquantes sont dé nies à NULL.

Comme pour le INNER JOIN, ou le LEFT JOIN Il est nécessaire de spéci er les attributs à utiliser
pour e ectuer la jointure : on utilise le mot clé ON suivi de l’égalité souhaitée après avoir renseigné
les tables dans le RIGHT JOIN.
ff
ffi
fi
fi
SELECT *
FROM etudiant
RIGHT JOIN ville
ON étudiant.numero = ville.numero

numero nom prenom age groupe_td Ville

1 Dupont Teo 15 TD1 Toulouse

3 Benazi Ali 16 TD1 Marseille

5 Porter Sophie 16 TD2 Paris

6 SY Fatou 21 TD2 Lyon

7 NULL NULL NULL NULL Nice

8 NULL NULL NULL NULL Lille

Ici on fait un RIGHT JOIN par rapport à la table ville, donc on obtient comme résultat toutes les
lignes de la table ville avec les lignes correspondantes de la table étudiant lorsqu’il y a
correspondance.

4. FULL JOIN

La jointure FULL JOIN est une jointure entre 2 tables qui permet de retourner tous les
enregistrements des deux tables même s’il n’y a pas de correspondance avec l’autre. S’il n’y a
pas de correspondance, les valeurs manquantes sont dé nies à NULL. Cette jointure nécessite
également l’attribut ON.
fi
SELECT *
FROM etudiant
FULL JOIN ville
ON étudiant.numero = ville.numero

numero nom prenom age groupe_td Ville

1 Dupont Teo 15 TD1 Toulouse

2 Sourti Jules 20 TD1 NULL

3 Benazi Ali 16 TD1 Marseille

4 Bellin Ines 16 TD2 NULL

5 Porter Sophie 16 TD2 Paris

6 SY Fatou 21 TD2 Lyon

7 NULL NULL NULL NULL Nice

8 NULL NULL NULL NULL Lille

Ici peu importe s’il n’y a pas de lignes correspondantes dans l’une des deux tables, toutes les
informations des deux tables sont présentes. C’est la jointure qui permet de garder le plus
d’informations possibles.

UNION
La commande UNION de SQL permet de mettre bout-à-bout les résultats de plusieurs requêtes
utilisant elles-même la commande SELECT.
L’union de 2 ensembles A et B est un concept qui consiste à obtenir tous les éléments qui
correspondent à la fois à l’ensemble A ou à l’ensemble B.
Par exemple :

> EtudiantTD1

numero nom prenom age groupe_td

1 Dupont Teo 15 TD1

2 Sourti Jules 20 TD1

3 Benazi Ali 16 TD1

> EtudiantTD2

numero nom prenom age groupe_td

4 Bellin Ines 16 TD2

5 Porter Sophie 16 TD2

6 SY Fatou 21 TD2

SELECT *
FROM etudiantTD1

UNION

SELECT *
FROM etudiantTD2

numero nom prenom age groupe_td

1 Dupont Teo 15 TD1

2 Sourti Jules 20 TD1

3 Benazi Ali 16 TD1

4 Bellin Ines 16 TD2

5 Porter Sophie 16 TD2

6 SY Fatou 21 TD2

Vous aimerez peut-être aussi