Leçon 9: Requêtes III

Sous-requêtes

SELECT champ1, champ2, ..., FONCTION(champ),...
FROM table
[WHERE champX IN (SELECT champX
                  FROM table
                  WHERE...)]
[GROUP BY champs du SELECT]
[HAVING FONCTION(champY) IN (SELECT champY
                             FROM table
                             WHERE...)]
[ORDER BY champ1 [ASC/DESC], champ2 [ASC/DESC], ...]

Sous-requêtes entrelacées

SELECTchamp1, champ2, ..., FONCTION(champ),...
FROM table1 AS alias1
[WHERE champX IN (SELECT champX
                  FROM table2 AS alias2
                  WHERE alias1.champ = alias2.champ)]
[GROUP BY champs du SELECT]
[HAVING FONCTION(champY) IN (SELECT champY
                             FROM table2 AS alias2
                             WHERE alias1.champ = alias2.champ)]
[ORDER BY champ1 [ASC/DESC], champ2 [ASC/DESC], ...]

Pour éviter les ambiguïtés, il peut être nécessaire d'utiliser:

Union

SELECT champ1, champ2, ..., FONCTION(champ),...
FROM table
[WHERE condition de ligne]
[GROUP BY champs du SELECT]
[HAVING condition de groupe]
UNION [ALL]
SELECT champ1, champ2, ..., FONCTION(champ),...
FROM table
[WHERE condition de ligne]
[GROUP BY champs du SELECT]
[HAVING condition de groupe]
UNION [ALL]
SELECT champ1, champ2, ..., FONCTION(champ),...
FROM table
[WHERE condition de ligne]
[GROUP BY champs du SELECT]
[HAVING condition de groupe]
[ORDER BY champs1 [ASC/DESC], champs2 [ASC/DESC], ...]

Index Leçons

[1] - [2] - [3] - [4] - [5] - [6] - [7] - [8 intra] - [9] - [10] - [11] - [12] - [13] - [14] - [15 final]


Dernière modification: 2006-03-28