next up previous
Next: Négation Up: Requêtes SQL Previous: Sélections simples

Jointures

1.
Qui a joué Tarzan (nom et prénom)?


Solution :

SELECT prenom, nom_acteur 
FROM   role, artiste
WHERE nom_role = 'Tarzan'
AND  nom_acteur = nom;


2.
Nom des acteurs de Vertigo.


Solution :

SELECT nom_acteur
FROM   film, role
WHERE  film.titre = 'Vertigo'
AND    film.id_film = role.id_film;


3.
Quels films peut-on voir au Rex, et à quelle heure?


Solution :

SELECT titre, heure_debut
FROM   seance s, film f
WHERE  s.id_film = f.id_film
AND    s.nom_cinema='Rex';


4.
Titre des films dans lesquels a joué Woody Allen. Donner aussi le rôle.


Solution :

SELECT titre, nom_role
FROM   role r, film f
WHERE  nom_acteur='Allen'
AND    r.id_film = f.id_film;


5.
Quel metteur en scène a tourné dans ses propres films? Donner le nom, le rôle et le titre des films.


Solution :

SELECT titre, nom_role, nom_acteur
FROM  role r, film f
WHERE r.nom_acteur  =  f.nom_realisateur
AND   r.id_film = f.id_film;


6.
Quel metteur en scène a tourné en tant qu'acteur? Donner le nom, le rôle et le titre des films où le metteur en scène a joué.


Solution :

SELECT f2.titre, nom_role, nom_acteur
FROM  role r, film f1, film f2
WHERE r.nom_acteur  =  f1.nom_realisateur
AND   r.id_film = f2.id_film;


7.
Où peut-on voir Shining ? (Nom et adresse du cinéma, horaire).


Solution :

SELECT titre, c.nom_cinema, heure_debut, heure_fin
FROM  film f, seance s, cinema c
WHERE f.titre='Shining'
AND   s.id_film = f.id_film
AND   s.nom_cinema = c.nom_cinema;


8.
Dans quels films le metteur-en-scène a-t-il le même prénom que l'un des interprètes? (titre, nom du metteur-en-scne, nom de l'inteprète). Le metteur-en-scène et l'interprète ne doivent pas être la même personne.


Solution :

SELECT titre, a1.nom ``Metteur en scene'', a2.nom ``Interprete''
FROM  film f, role r, artiste a1, artiste a2
WHERE f.id_film = r.id_film
AND   r.nom_acteur = a2.nom
AND   f.nom_realisateur = a1.nom
AND   a1.prenom = a2.prenom;
AND   a1.nom != a2.nom


9.
Où peut-on voir un film avec Clint Eastwood ? (Nom et adresse du cinéma, horaire).


Solution :

SELECT titre, c.nom_cinema, heure_debut, heure_fin
FROM  film f, seance s, cinema c, role r
WHERE r.nom_acteur = 'Eastwood'
AND   s.id_film = f.id_film
AND   s.nom_cinema = c.nom_cinema
AND   s.id_film = r.id_film;


10.
Quel film peut-on voir dans le 12e arrondissement, dans une salle climatisée ? (Nom du cinéma, No de la salle, horaire, titre du film).


Solution :

SELECT  f.titre, c.nom_cinema, salle.no_salle,  heure_debut, heure_fin
FROM  film f, seance s, cinema c, salle salle
WHERE salle.climatise = 'O'
AND   c.arrondissement = 12
AND   s.id_film = f.id_film
AND   s.nom_cinema = c.nom_cinema
AND   salle.nom_cinema = c.nom_cinema
AND   s.no_salle     =   salle.no_salle;


11.
Liste des cinémas (Adresse, Arrondissement) ayant une salle de plus de 150 places et passant un film avec Bruce Willis.


Solution :

SELECT c.nom_cinema, adresse, arrondissement
FROM  seance s, cinema c, salle, role r
WHERE r.nom_acteur = 'Willis'
AND   s.id_film = r.id_film
AND   s.nom_cinema = c.nom_cinema
AND   salle.nom_cinema = c.nom_cinema
AND   salle.capacite > 150
AND   salle.no_salle = s.no_salle;


12.
Liste des cinémas (Nom, Adresse) dont TOUTES les salles ont plus de 100 places.


Solution :

SELECT c.nom_cinema, c.adresse
FROM   cinema c
WHERE  100 < ALL (SELECT capacite 
                 FROM salle s
            WHERE s.nom_cinema = c.nom_cinema);



next up previous
Next: Négation Up: Requêtes SQL Previous: Sélections simples
Philippe Rigaux
2000-02-03