- Sous-requêtes retournant plusieurs valeurs :
- Utilisation des opérateurs
IN
et NOT
WHERE col IN (SELECT ...)
WHERE col NOT IN (SELECT ...)
- Utilisation des opérateurs de comparaison combinés avec
ANY
ou ALL
WHERE col [=|<>|<|<=|>|>=] ANY (SELECT ...)
WHERE col [=|<>|<|<=|>|>=] ALL (SELECT ...)
- Exemples :
SELECT * FROM Etudiant E
WHERE E.dip_id IN (SELECT D.dip_id FROM Diplome D
WHERE LOWER(D.dip_discipline) LIKE '%info%');
etud_num | etud_nom | etud_prenom | etud_adresse | etud_naissance | dip_id
----------+----------+-------------+---------------------------+----------------+--------
20000001 | Martin | Jacques | Résidence de la pommeraie | 1995-01-01 | 1
20000002 | Martin | Pierre | Résidence de la pommeraie | 1995-10-21 | 1
(2 rows)
SELECT * FROM Etudiant
WHERE etud_naissance <= ALL (SELECT etud_naissance FROM Etudiant);
etud_num | etud_nom | etud_prenom | etud_adresse | etud_naissance | dip_id
----------+----------+-------------+---------------------+----------------+--------
20000003 | Dalton | Joe | Pénitencier fédéral | 1865-04-01 |
(1 row)