Cette sous-requête permet de vérifier que la projection d'un tuple de la requête principale est présent dans la sous-requête.
SELECT <projections>
FROM <relations>
WHERE (<projection d un tuple>) IN
(<requête imbriquée>)
La projection du tuple de la requête principale doit conduire à un schéma relationnel identique à celui de la requête imbriquée.
SELECT Chercheur.Nom
FROM Chercheur
WHERE Chercheur.Universite IN
(SELECT Universite.Nom
FROM Universite
WHERE Universite.Ville='Paris')
SELECT N°SS
FROM Chercheur
WHERE (Nom, Prenom, Age) IN
(SELECT Nom, Prenom, Age
FROM Enseignant)
SELECT Nom
FROM Chercheur
WHERE Universite='Paris6' AND Nom IN
(SELECT Nom
FROM Enseignant
WHERE Universite IN
(SELECT Nom
FROM Universite
WHERE Ville='Paris'))
La sous-requête IN est une troisième voie, avec les clauses WHERE et JOIN, pour réaliser des jointures entre relations. On préfèrera néanmoins éviter d'utiliser à cette unique fin cette version plus procédurale.
On peut tester la non existence du tuple dans la sous requête en utilisant la clause NOT IN à la place de la clause IN.