2017-06-08 7 views
-1

Considérons la question suivante: Nous avons 3 tables,Comment résoudre les problèmes suivants?

1. Theatre (theatre_Id, thatre_name) 
2. ShowTime (showTimeId, theatre_Id, movie_id) 
3. Movies (movie_id, movie_name) 

Maintenant même nom de film peut aussi avoir différentes de sorte de MovieID de fonction de la bobine.

Par exemple: [1, HarryPotter], [2, HarryPotter], [3, Pirates de Carr]

Maintenant, nous devons trouver le nom du film qui a showtime sur tous les lieux de théâtre? Est-ce une requête corrélée imbriquée?

+0

qui base de données SQL et ce que vous avez essayé jusqu'à présent? – maSTAShuFu

+0

Vous n'avez pas reçu votre question. Pouvez-vous expliquer d'une autre manière? –

Répondre

1

Si vous feriez mieux de formuler la question:

Quels sont les noms des films dont la liste est le théâtre de la même taille que le nombre de théâtres?

vous obtenez la requête:

select distinct movie_name 
from Movies m 
where movie_id in (
    select movie_id 
    from ShowTime 
    group by movie_id 
    having count(distinct theatre_Id) = (select count(*) from Theatre)) 
+0

comment pouvons-nous le faire en utilisant 'existe'? – JavaDeveloper

+0

@JavaDeveloper pourquoi voudriez-vous? Cela va surpasser «existe» par beaucoup: O (n) vs O (n^2) – Bohemian