È uscito il Corso Java Completo — usa il coupon JAVA2026 (fino al 30 giugno)

Esercizi JOIN Multiple SQL

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.Nome
FROM Dipendente AS d
JOIN Dipendente AS m
    ON d.ID_Manager = m.ID
JOIN 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.Nome
FROM Prodotto AS p
JOIN Fornitore AS f
    ON p.ID_Fornitore = f.ID
JOIN 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.Nome
FROM Studente AS s
JOIN Iscrizione AS i
    ON s.ID = i.ID_Studente
JOIN Corso AS c
    ON i.ID_Corso = c.ID
JOIN 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.Nome
FROM Autore AS a
JOIN Libro AS l
    ON a.ID = l.ID_Autore
JOIN 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.Quantita
FROM Cliente AS c
JOIN Ordine AS o
    ON c.ID = o.ID_Cliente
JOIN DettaglioOrdine AS d
    ON o.ID = d.ID_Ordine
JOIN 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.Nome
FROM Impiegato AS e
JOIN Dipendente AS d
    ON e.ID_Dipendente = d.ID
JOIN 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.Nome
FROM Attore AS a
JOIN Recitazione AS r
    ON a.ID = r.ID_Attore
JOIN Film AS f
    ON r.ID_Film = f.ID
JOIN 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.Nome
FROM Fornitore AS f
JOIN Prodotto AS p
    ON f.ID = p.ID_Fornitore
JOIN 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.Nome
FROM Studente AS s
JOIN Iscrizione AS i
    ON s.ID = i.ID_Studente
JOIN Corso AS c
    ON i.ID_Corso = c.ID
JOIN 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.Nome
FROM Autore AS a
JOIN Libro AS l
    ON a.ID = l.ID_Autore
JOIN Genere AS g
    ON l.ID_Genere = g.ID
WHERE a.ID IN (
    SELECT ID_Autore
    FROM Libro
    GROUP BY ID_Autore
    HAVING COUNT(*) > 1
);