Skip to content

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
);