Esercizio SQL

Pietripaoli
Salve a tutti ho un piccolo problema, ma una cosa davvero stupida solamente che sono alle basi, con un esercizio di SQL.
Lo schema è il seguente:

AEROPORTO (Città,Nazione,NumPiste)
VOLO (IdVolo,GiornoSett,CittaPart,CittaArr,OraArr,TipoAereo)
Aereo(TipoAereo,NumPasseggeri,QtaMerci)

devo scrivere l'interrogazione che permette di determinare

le città da cui partono voli internazionali. Il mio problema sta proprio nel capire come indicare il fatto che la nazione della città di partenza deve essere diversa dalla nazione della città di arrivo. Ringrazio anticipatamente chiunque mi aiuti ;)

Risposte
apatriarca
Una prima idea potrebbe essere quella di usare una JOIN come segue:
SELECT DISTINCT VOLO.CittaPart FROM VOLO, AEROPORTO AS APART, AEROPORTO AS AARR 
WHERE APART.Città = VOLO.CittaPart AND AARR.Città = VOLO.CittaArr AND APART.Nazione != AARR.Nazione;

In alternativa puoi usare EXISTS con una subquery come segue
SELECT PART.Città FROM AEROPORTO AS PART, AEROPORTO AS ARR 
WHERE PART.Nazione != ARR.Nazione 
    AND EXISTS (SELECT * FROM VOLO WHERE CittaPart = PART.Città AND CittaArr = ARR.Città)

e probabilmente altri modi ancora che al momento non mi vengono in mente.

Pietripaoli
grazie mille per l'aiuto

Pietripaoli
Scusate invece se mi chiede i voli internazionali che partono ogni settimana da città italiane, come faccio a indicare le settimane?

apatriarca
A me sembra che tutti i voli che vengono descritti da quello schema partano ogni settimana. Viene infatti fornito solo un giorno della settimana e non una data più precisa..

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.