Partie I
SQL de base
126
© Éditions Eyrolles
Le tableau suivant détaille ces requêtes, les clauses d’autojointures sont surlignées. Dans les
deux syntaxes, il est impératif d’utiliser un alias de table. Concernant l’écriture « SQL2 », on
remarque que les clauses JOIN s’imbriquent (pour joindre plus de deux tables).
Figure 4-13 Autojointures
Compagnie
comp
nrue rue
ville
nomComp
AF
124
Port Royal
Paris
Air France
SING
7
Camparols
Singapour
Singapore AL
CAST
1
G. Brassens
Blagnac
Castanet AL
Pilote
brevet
nom
nbHVol compa
chefPil
PL-1
Pierre Lamothe
450
AF
PL-4
PL-2
Didier Linxe
900
AF
PL-4
PL-3
Christian Soutou
1000
SING
PL-4
Henri Alquié
3400
AF
Tableau 4-36 Exemples d’autojointures
Requête Jointure relationnelle
Jointure SQL2
R3
SELECT p1.brevet, p1.nom
FROM Pilote p1, Pilote p2
AND
p2.nom LIKE '%Alquié%';
SELECT p1.brevet, p1.nom
FROM
Pilote p1
WHERE p2.nom LIKE '%Alquié%';
+--------+----------------+
| brevet | nom
|
+--------+----------------+
| PL-1
| Pierre Lamothe |
| PL-2
| Didier Linxe
|
+--------+----------------+
R4
SELECT SUM(p1.nbHVol)
FROM Pilote p1, Pilote p2,
Compagnie cpg
AND cpg.nomComp = 'Air France';
SELECT SUM(p1.nbHVol)
FROM Pilote p1
WHERE nomComp = 'Air France';
+----------------+
| SUM(p1.nbHVol) |
+----------------+
|
1350.00 |
+----------------+
Web
WHERE p1.chefPil = p2.brevet
JOIN Pilote p2
ON
p1.chefPil = p2.brevet
WHERE p1.chefPil = p2.brevet
AND
cpg.comp = p2.compa
JOIN Pilote p2
ON p1.chefPil = p2.brevet
JOIN Compagnie
ON comp = p2.compa
Précédent

- 148/418

Suivant