Ti faccio un esempio, con questo dovresti essere in grado di fare tutto:
Dato lo schema relazionale:
Libreria (Nome, Piva, Indirizzo, Città)
Libro (CodL, Titolo,Editore)
Autore (CodA, Cognome, Nome, Nazionalità)
Scritto (CodA,CodL)
Vendita(Piva,CodL,NumCopie)
1. Trovare i libri che hanno venduto almeno una copia nella libreria “Bettini” di Cesena
Svolgimento:
tabelle interessate: libro, vendita, libreria
cosa dobbiamo selezionare? Il libro quindi:
Select * from Libro ,
Abbiamo delle restrizioni? Si, su quali tabelle? Libreria e Vendita. Quindi vanno unite.
Select * from Libro INNER JOIN ??*
??* = da quale partiamo ad unire? Da quella che ha qualcosa in comune con Libro, dopo quell'altra (p.s la condizione dell'iner join va a controllare le PK delle table)
SELECT * from Libro INNER JOIN Vendita on Libro.CodL = Vendita.CodL INNER JOIN Libreria ON Libreria.Piva = Vendita.Piva WHERE ??*
??* = Adresso la condizione principale:
C'è? Si, che il libro abbia almeno una copia venduta e che la libreria si chiami "Bettini" della città Cesena, quindi:
SELECT * from Libro INNER JOIN Vendita on Libro.CodL = Vendita.CodL INNER JOIN Libreria ON Libreria.Piva = Vendita.Piva WHERE Vendita.NumCopie >= 1 and Libreria.Citta ='Cesena' and Libreria.Nome='Bettini';