Requête 24 : Donner le titre des films qui ont été primés au moins une fois (y compris les récompenses des acteurs jouant dans le film).
Forme plate:
1 2 3 4 5 6 7 | SELECT DISTINCT F.TITRE, F.ANNÉE FROM FILM F, RÉCOMPENSE_FILM RF WHERE F.NUMF = RF.NUMF UNION SELECT DISTINCT F.TITRE, F.ANNÉE FROM FILM F, RÉCOMPENSE_ACTEUR RA WHERE F.NUMF = RA.NUMF |
Forme imbriquée:
1 2 3 4 5 6 7 | SELECT TITRE, ANNÉE FROM FILM WHERE NUMF IN ( SELECT NUMF FROM RÉCOMPENSE_FILM UNION SELECT NUMF FROM RÉCOMPENSE_ACTEUR ) |
Requête 25 : Lister les cinémas qui ont exclusivement passé des films primés.
Forme imbriquée:
1 2 3 4 5 6 7 8 9 10 | SELECT NOM, VILLE FROM CINÉMA C WHERE NOT EXISTS ( SELECT * FROM PASSE P WHERE P.NUMC = C.NUMC AND NOT EXISTS ( SELECT * FROM RÉCOMPENSE_FILM RF WHERE RF.NUMF = P.NUMF ) ANDNOT EXISTS ( SELECT * FROM RÉCOMPENSE_ACTEUR RA WHERE RA.NUMF = P.NUMF ) ) |
Forme imbriquée– prédicat NOT EXISTS :
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT NOM, VILLE FROM CINÉMA C WHERE NOT EXISTS ( SELECT * FROM PASSE P WHERE P.NUMC = C.NUMC AND NOT EXISTS ( SELECT * FROM ( SELECT NUMF FROM RÉCOMPENSE_FILM UNION SELECT NUMF FROM RÉCOMPENSE_ACTEUR ) AS R WHERE R.NUMF = P.NUMF ) ) |
Forme imbriquée – prédicat NOT IN :
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT NOM, VILLE FROM CINÉMA WHERE NUMC NOT IN ( SELECT NUMC FROM PASSE WHERE NUMF NOT IN ( SELECT R.NUMF FROM ( SELECT NUMF FROM RÉCOMPENSE_FILM UNION SELECT NUMF FROM RÉCOMPENSE_ACTEUR ) AS R ) ) ) |
Requête 26 : Donner le titre des films qui ont reçu au moins trois récompenses.
Forme imbriquée:
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT TITRE, ANNÉE FROM FILM WHERE NUMF IN ( SELECT R.NUMF FROM ( SELECT NUMF FROM RÉCOMPENSE_FILM UNION SELECT NUMF FROM RÉCOMPENSE_ACTEUR ) AS R GROUP BY R.NUMF HAVING COUNT (*) >= 3 ) |
Requête 27 : Noms et prénoms des acteurs qui ont reçu plus de récompenses qu”’”aucun acteur qui a joué dans « Casablanca » n”’”en a eu.
Forme imbriquée:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | SELECT PRÉNOM, NOM FROM PERSONNE WHERE NUMP IN ( SELECT NUMA FROM RÉCOMPENSE_ACTEUR GROUP BY NUMA HAVING COUNT (*) > ( SELECT MAX ( SELECT COUNT (*) FROM RÉCOMPENSE_ACTEUR WHERE NUMA IN ( SELECT NUMA FROM DISTRIBUTION WHERE NUMF IN ( SELECT NUMF FROM FILM WHERE TITRE = ‘Casablanca’)) GROUP BY NUMA))) |