Partie I
SQL de base
130
© Éditions Eyrolles
Jointures bilatérales
Les deux tables jouent un rôle symétrique, il n’y a pas de table dominante. Ce type de jointure
permet d’extraire des enregistrements qui ne répondent pas aux critères de jointure des deux
côtés de la clause de jointure.
En considérant les tables suivantes, une jointure externe bilatérale permet d’extraire, par
exemple :
q
la liste des compagnies et leurs pilotes, incluant les compagnies n’ayant pas de pilote et les
pilotes rattachés à aucune compagnie (requête R9) ;
q
la liste des pilotes et leurs qualifications, incluant les pilotes n’ayant pas encore d’expérience et les qualifications associées à des pilotes inconnus (requête R10).
R8
Sans objet.
SELECT qua.typeAv, pil.brevet, pil.nom
FROM Qualifs qua
;
--équivalent à
SELECT qua.typeAv, pil.brevet, pil.nom
FROM Pilote pil
;
+--------+--------+------------------+
| typeAv | brevet | nom
|
+--------+--------+------------------+
|
|
| A320
| PL-2
| Didier Linxe
|
| A330
| PL-3
| Christian Soutou |
| A320
| PL-4
| Henri Alquié
|
| A340
| PL-4
| Henri Alquié
|
+--------+--------+------------------+
Tableau 4-38 Écritures équivalentes de jointures externes unilatérales
Requête Jointures relationnelles
Jointures SQL2
RIGHT OUTER JOIN Pilote pil
ON pil.brevet = qua.brevet
LEFT OUTER JOIN Qualifs qua
ON pil.brevet = qua.brevet
NULL
| PL-1
| Pierre Lamothe
SQL de base
130
© Éditions Eyrolles
Jointures bilatérales
Les deux tables jouent un rôle symétrique, il n’y a pas de table dominante. Ce type de jointure
permet d’extraire des enregistrements qui ne répondent pas aux critères de jointure des deux
côtés de la clause de jointure.
En considérant les tables suivantes, une jointure externe bilatérale permet d’extraire, par
exemple :
q
la liste des compagnies et leurs pilotes, incluant les compagnies n’ayant pas de pilote et les
pilotes rattachés à aucune compagnie (requête R9) ;
q
la liste des pilotes et leurs qualifications, incluant les pilotes n’ayant pas encore d’expérience et les qualifications associées à des pilotes inconnus (requête R10).
R8
Sans objet.
SELECT qua.typeAv, pil.brevet, pil.nom
FROM Qualifs qua
;
--équivalent à
SELECT qua.typeAv, pil.brevet, pil.nom
FROM Pilote pil
;
+--------+--------+------------------+
| typeAv | brevet | nom
|
+--------+--------+------------------+
|
|
| A320
| PL-2
| Didier Linxe
|
| A330
| PL-3
| Christian Soutou |
| A320
| PL-4
| Henri Alquié
|
| A340
| PL-4
| Henri Alquié
|
+--------+--------+------------------+
Tableau 4-38 Écritures équivalentes de jointures externes unilatérales
Requête Jointures relationnelles
Jointures SQL2
RIGHT OUTER JOIN Pilote pil
ON pil.brevet = qua.brevet
LEFT OUTER JOIN Qualifs qua
ON pil.brevet = qua.brevet
NULL
| PL-1
| Pierre Lamothe
