>Docente(Coddoc, Cognome, Nome, Qualifica, Coddip, Codfac)
>Dipartimento(Coddip, Descrizione, Indirizzo, Coddirettore)
>Facoltà(Codfac, Descrizione, Indirizzo)
>quale testo bisogna inserire al posto di xxx nel programma:
>SELECT Facoltà.Descrizione, Dipartimento.Descrizione, Dipartimento.Indirizzo
>FROM Facoltà, Docente, Dipartimento
>WHERE Docente.Codfac=Facoltà.Codfac
>AND Docente.Coddip=Dipartimento.Coddip
>AND Facoltà.Indirizzo=Dipartimento.Indirizzo
>AND Facoltà.Indirizzo xxx;
>per ottenere nome facoltà , nome dipartimento e indirizzo quando
>facoltà e dipartimento hanno lo stesso indirizzo e tale indirizzo
>ha 10 caratteri?
Io prima di tutto suggerirei al tuo prof di aggiornare la sintassi utilizzata per simulare una operazione di JOIN tra le tabelle, dato che ormai la maggior parte dei DBMS che aderiscono allo standard ANSI SQL supportano almeno la versione 92 (del 1992!!) che offre nativamente l'operatore JOIN, in modo da distinguere le relazioni logiche tra tabelle dai criteri di ricerca.
Per quanto riguarda "tale indirizzo ha 10 caratteri" io applicherei una funzione che calcoli la lunghezza della stringa come ad esempio la funzione LEN():
SELECT
F.Descrizione
, DO.Descrizione
, DO.Indirizzo
FROM Facoltà AS F
INNER JOIN Docente AS DO
ON F.Codfac = DO.Codfac
INNER JOIN Dipartimento AS DI
ON DO.Coddip = DI.Coddip
WHERE F.Indirizzo = D.Indirizzo
AND LEN(F.Indirizzo) = 10;
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org