Esercizio SQL
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
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
Una prima idea potrebbe essere quella di usare una JOIN come segue:
In alternativa puoi usare EXISTS con una subquery come segue
e probabilmente altri modi ancora che al momento non mi vengono in mente.
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.
grazie mille per l'aiuto
Scusate invece se mi chiede i voli internazionali che partono ogni settimana da città italiane, come faccio a indicare le settimane?
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..