lezione 02

join avanzati

left, right e full join con scenari reali.

livello: base durata: 15 min output: join solidi badge: joins

left join

select clienti.nome, ordini.id
from clienti
left join ordini on ordini.cliente_id = clienti.id;

join + aggregazioni

select clienti.nome, count(ordini.id) as totale
from clienti
left join ordini on ordini.cliente_id = clienti.id
group by clienti.nome;

panoramica

In questo capitolo su join avanzati, left, right e full join con scenari reali. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.

Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).

badge: joins

obiettivi

  • capire e applicare left join in uno scenario reale
  • capire e applicare right join in uno scenario reale
  • capire e applicare join + aggregazioni in uno scenario reale
  • riconoscere trade-off tra chiarezza e performance

scheda rapida

SELECT categoria, COUNT(*) AS tot
FROM prodotti
WHERE attivo = TRUE
GROUP BY categoria
ORDER BY tot DESC
LIMIT 5;

Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.

tips

  • usa alias chiari
  • filtra presto con WHERE
  • controlla i piani di esecuzione
  • usa LEFT JOIN per dati opzionali
  • controlla cardinalità
  • evita join su campi non indicizzati

tip: Se una join duplica righe, ricontrolla la cardinalità.

mini progetto

Report ordini-clienti-prodotti.

  • definisci join chiave
  • aggiungi join prodotti
  • gestisci NULL
  • verifica duplicati

output atteso: uno script o query ripetibile con risultati verificabili.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief