menu
languageItaliano
save_alt Download

Cheat sheet sulle JOIN SQL

Riferimento rapido a tutti i tipi di JOIN SQL con diagrammi visivi ed esempi di codice

INNER JOIN LA PIÙ USATA

Restituisce solo le righe con valori corrispondenti in entrambe le tabelle. È il tipo di JOIN predefinito e il più usato.
SELECT orders.id, customers.name, orders.amount
FROM orders
INNER JOIN customers
  ON orders.customer_id = customers.id

Punti chiave:

  • Restituisce solo i record corrispondenti di entrambe le tabelle
  • Esclude automaticamente le righe senza corrispondenza
  • La JOIN più efficiente in termini di prestazioni
  • Si può scrivere semplicemente JOIN (INNER è implicito)

LEFT JOIN

Restituisce tutte le righe della tabella di sinistra e le righe corrispondenti della tabella di destra. Se non c'è corrispondenza, le colonne della tabella di destra restituiscono valori NULL.
SELECT customers.name, orders.amount
FROM customers
LEFT JOIN orders
  ON customers.id = orders.customer_id

Punti chiave:

  • Mantiene tutti i record della tabella di sinistra (la prima)
  • Compaiono valori NULL nelle colonne della tabella di destra senza corrispondenza
  • Nota anche come LEFT OUTER JOIN
  • Utile per trovare record senza dati correlati

RIGHT JOIN

Restituisce tutte le righe della tabella di destra e le righe corrispondenti della tabella di sinistra. È l'opposto della LEFT JOIN.
SELECT orders.amount, customers.name
FROM orders
RIGHT JOIN customers
  ON orders.customer_id = customers.id

Punti chiave:

  • Mantiene tutti i record della tabella di destra (la seconda)
  • Compaiono valori NULL nelle colonne della tabella di sinistra senza corrispondenza
  • Nota anche come RIGHT OUTER JOIN
  • Si può sempre riscrivere come LEFT JOIN

FULL OUTER JOIN

Restituisce tutte le righe di entrambe le tabelle, con valori NULL dove non ci sono corrispondenze in nessuna delle due direzioni.
SELECT customers.name, orders.amount
FROM customers
FULL OUTER JOIN orders
  ON customers.id = orders.customer_id

Punti chiave:

  • Combina i risultati di LEFT JOIN e RIGHT JOIN
  • Mostra tutti i record di entrambe le tabelle
  • Non supportata in MySQL (usa UNION al suo posto)
  • Utile per trovare tutte le relazioni e le lacune

CROSS JOIN USALA CON CAUTELA

Restituisce il prodotto cartesiano delle due tabelle: ogni riga della prima tabella combinata con ogni riga della seconda.
SELECT sizes.name, colors.name
FROM sizes
CROSS JOIN colors

-- Alternative syntax
SELECT sizes.name, colors.name
FROM sizes, colors

Punti chiave:

  • Nessuna clausola ON necessaria (nessuna condizione di join)
  • Righe del risultato = (righe tabella sinistra × righe tabella destra)
  • Può generare rapidamente result set enormi
  • Utile per generare combinazioni o dati di test

LEFT ANTI JOIN

Restituisce le righe della tabella di sinistra che non hanno righe corrispondenti nella tabella di destra. Utile per trovare record senza relazioni.
SELECT customers.name
FROM customers
LEFT JOIN orders
  ON customers.id = orders.customer_id
WHERE orders.id IS NULL

-- Alternative: NOT EXISTS
SELECT customers.name
FROM customers
WHERE NOT EXISTS (
  SELECT 1 FROM orders
  WHERE orders.customer_id = customers.id
)

Punti chiave:

  • Si implementa con LEFT JOIN + WHERE IS NULL
  • Trova i record senza dati correlati
  • Chiamata anche "LEFT EXCLUDING JOIN"
  • Esempio: clienti che non hanno mai effettuato un ordine

RIGHT ANTI JOIN

Restituisce le righe della tabella di destra che non hanno righe corrispondenti nella tabella di sinistra. È l'opposto della LEFT ANTI JOIN.
SELECT orders.id
FROM customers
RIGHT JOIN orders
  ON customers.id = orders.customer_id
WHERE customers.id IS NULL

-- Usually rewritten as LEFT ANTI JOIN
SELECT orders.id
FROM orders
LEFT JOIN customers
  ON orders.customer_id = customers.id
WHERE customers.id IS NULL

Punti chiave:

  • Si implementa con RIGHT JOIN + WHERE IS NULL
  • Trova i record orfani nella tabella di destra
  • Si può sempre riscrivere come LEFT ANTI JOIN
  • Esempio: ordini senza un cliente valido

Cerchi un modo migliore per scrivere SQL?

Beekeeper Studio è un editor SQL moderno e intuitivo con autocompletamento, cronologia delle query e supporto per oltre 15 database.

Prova Beekeeper Studio gratis