Ecco degli esercizi semplici con soluzione per praticare le basi sull’utilizzo di multiple join in una sola query in sql.
Esercizio 1
Ottieni il nome dei dipendenti, il nome dei manager che li supervisionano e il nome dei dipartimenti a cui appartengono.
SELECT d.Nome, m.Nome, e.NomeFROM Dipendente AS dJOIN Dipendente AS m ON d.ID_Manager = m.IDJOIN Dipartimento AS e ON d.ID_Dipartimento = e.ID;
Esercizio 2
Ottieni il nome dei prodotti, il nome dei fornitori che li forniscono e il nome dei dipartimenti in cui si trovano.
SELECT p.Nome, f.Nome, d.NomeFROM Prodotto AS pJOIN Fornitore AS f ON p.ID_Fornitore = f.IDJOIN Dipartimento AS d ON f.ID_Dipartimento = d.ID;
Esercizio 3
Ottieni il nome degli studenti, il nome dei corsi a cui sono iscritti e il nome dei docenti che insegnano quei corsi.
SELECT s.Nome, c.Nome, d.NomeFROM Studente AS sJOIN Iscrizione AS i ON s.ID = i.ID_StudenteJOIN Corso AS c ON i.ID_Corso = c.IDJOIN Docente AS d ON c.ID_Docente = d.ID;
Esercizio 4
Ottieni il nome degli autori, il nome dei libri che hanno scritto e il nome dei generi a cui appartengono quei libri.
SELECT a.Nome, l.Titolo, g.NomeFROM Autore AS aJOIN Libro AS l ON a.ID = l.ID_AutoreJOIN Genere AS g ON l.ID_Genere = g.ID;
Esercizio 5
Ottieni il nome dei clienti, il nome dei prodotti che hanno acquistato e la quantità di ciascun prodotto.
SELECT c.Nome, p.Nome, d.QuantitaFROM Cliente AS cJOIN Ordine AS o ON c.ID = o.ID_ClienteJOIN DettaglioOrdine AS d ON o.ID = d.ID_OrdineJOIN Prodotto AS p ON d.ID_Prodotto = p.ID;
Esercizio 6
Ottieni il nome degli impiegati, il nome dei dipartimenti in cui lavorano e il nome dei manager che supervisionano quei dipartimenti.
SELECT e.Nome, d.Nome, m.NomeFROM Impiegato AS eJOIN Dipendente AS d ON e.ID_Dipendente = d.IDJOIN Dipendente AS m ON d.ID_Manager = m.ID;
Esercizio 7
Ottieni il nome degli attori, il nome dei film in cui hanno recitato e il nome dei registi di quei film.
SELECT a.Nome, f.Titolo, r.NomeFROM Attore AS aJOIN Recitazione AS r ON a.ID = r.ID_AttoreJOIN Film AS f ON r.ID_Film = f.IDJOIN Regista AS rg ON f.ID_Regista = rg.ID;
Esercizio 8
Ottieni il nome dei fornitori, il nome dei prodotti che forniscono e il nome dei dipartimenti in cui si trovano i prodotti.
SELECT f.Nome, p.Nome, d.NomeFROM Fornitore AS fJOIN Prodotto AS p ON f.ID = p.ID_FornitoreJOIN Dipartimento AS d ON f.ID_Dipartimento = d.ID;
Esercizio 9
Ottieni il nome degli studenti, il nome dei corsi a cui sono iscritti e il nome dei dipartimenti in cui si tengono i corsi.
SELECT s.Nome, c.Nome, d.NomeFROM Studente AS sJOIN Iscrizione AS i ON s.ID = i.ID_StudenteJOIN Corso AS c ON i.ID_Corso = c.IDJOIN Dipartimento AS d ON c.ID_Dipartimento = d.ID;
Esercizio 10
Ottieni il nome degli autori, il nome dei libri che hanno scritto e il nome dei generi a cui appartengono quei libri, solo per gli autori che hanno scritto più di un libro.
SELECT a.Nome, l.Titolo, g.NomeFROM Autore AS aJOIN Libro AS l ON a.ID = l.ID_AutoreJOIN Genere AS g ON l.ID_Genere = g.IDWHERE a.ID IN ( SELECT ID_Autore FROM Libro GROUP BY ID_Autore HAVING COUNT(*) > 1);