-- liste des diplomes avec plus de 30 étudiants inscrits
SELECT * FROM Diplome D
WHERE 30 < (SELECT COUNT(etud_num) FROM Etudiant E
WHERE E.dip_id = D.dip_id);EXISTS
EXISTS vérifie s'il existe au moins une ligne satisfaisant la sous-requêteEXISTS retourne vrai lorsque la sous-requête synchronisée ne renvoie pas un ensemble videSELECT * FROM Diplome
WHERE EXISTS (SELECT * FROM Etudiant
WHERE Etudiant.Dip_id = Diplome.Dip_id);
dip_id | dip_nom | dip_niveau | dip_discipline | prof_id
--------+---------+------------+----------------+---------
1 | Licence | L3 | Informatique | 3
(1 row)
WHERE de la requête principale procède par itération sur chaque ligne de la clause FROM ;
lors de chaque itération, la sous-requête ne récupère qu'une seule valeur de l'attribut provenant de la requête principale.