Ciaoo,
ho un problema con questo esercizio:
Si considerino i seguenti schemi di relazione
Prenotazioni(CodCli, CodAl, Acconto, Camera)
Clienti(CodCli, Nome, Cognome, Eta)
Alberghi(CodAl, Città, Via)
dove nella relazione Prenotazioni gli attributi CodCli e CodAl formano la chiave primaria, CodCli è chiave esterna per la relazione Clienti e CodAl è chiave esterna per la relazione Alberghi. Nella relazione Clienti l'attributo CodCli è la chiave primaria mentre nella relazione Alberghi la chiave primaria è CodAl.
Si noti che un cliente può fare più prenotazioni e uno stesso albergo può essere prenotato da diversi clienti.
Scrivere le istruzioni SQL che permettono di visualizzare il numero di prenotazioni effettuate nella città di Milano. Io l'avrei risolto cosi':
SELECT count(*) as nprenotazioni
FROM prenotazioni, Clienti, Alberghi
WHERE ( Prenotazioni.CodAl=Alberghi.CodAl) AND citta=milano
in realta' la soluzione usa una subquery:
SELECT count(*) as nprenotazioni
FROM prenotazioni
WHERE CodAl IN (SELECT CodAl FROM Alberghi WHERE Citta=Milano)
Perche' usa la subquery? non si puo' risolvere senza?
Grazie mille!