Un CROSS JOIN in PostgreSQL combina ogni riga di una tabella con ogni riga di un'altra tabella, creando un prodotto cartesiano. È utile per generare combinazioni, creare dati di test o abbinare elementi di due dataset.
🔖 Riferimento rapido: ti serve una consultazione veloce di tutti i tipi di JOIN? Dai un'occhiata al nostro SQL JOIN Cheat Sheet con diagrammi visivi ed esempi di codice.
Sintassi di base
SELECT column1, column2
FROM table1
CROSS JOIN table2;
Puoi anche usare la sintassi implicita:
SELECT column1, column2
FROM table1, table2;
Esempio: combinazioni di prodotti e colori
Consideriamo due semplici tabelle, products e colors, per mostrare come funziona un CROSS JOIN.
Tabella products:
| product_id | product_name |
|---|---|
| 1 | T-Shirt |
| 2 | Jeans |
Tabella colors:
| color_id | color_name |
|---|---|
| 1 | Red |
| 2 | Blue |
Per generare tutte le possibili combinazioni di prodotti e colori:
SELECT product_name, color_name
FROM products
CROSS JOIN colors;
Output previsto:
| product_name | color_name |
|---|---|
| T-Shirt | Red |
| T-Shirt | Blue |
| Jeans | Red |
| Jeans | Blue |
Il CROSS JOIN combina ogni prodotto con ogni colore, producendo un totale di 2 prodotti × 2 colori = 4 combinazioni.
Casi d'uso comuni
Generare tutte le combinazioni: crea varianti di prodotto combinando taglie e colori:
SELECT size, color
FROM sizes CROSS JOIN colors;
Creare dati di test: genera dati di esempio per i test combinando parametri diversi:
SELECT strategy, scenario
FROM strategies CROSS JOIN scenarios;
Modelli di report: crea righe segnaposto per tutte le possibili combinazioni nei report.
Considerazioni importanti
Prestazioni: il CROSS JOIN può generare set di risultati molto grandi. Una tabella con 1.000 righe incrociata con un'altra tabella da 1.000 righe produce 1.000.000 di righe.
Filtri: usa le clausole WHERE per limitare i risultati:
SELECT product_name, color_name
FROM products CROSS JOIN colors
WHERE product_name = 'T-Shirt';
Conclusione
Il CROSS JOIN è utile per generare combinazioni e dati di test, ma usalo con attenzione su tabelle grandi per evitare problemi di prestazioni. Valuta sempre la dimensione del set di risultati prima di eseguire la query.
Beekeeper Studio è una GUI per database gratuita & open source
Il miglior strumento per query & editor SQL che abbia mai usato. Offre tutto ciò che mi serve per gestire il mio database. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio è veloce, intuitivo e facile da usare. Beekeeper supporta tantissimi database e funziona alla grande su Windows, Mac e Linux.
Cosa dicono gli utenti di Beekeeper Studio
"Beekeeper Studio ha sostituito completamente il mio vecchio flusso di lavoro SQL. È veloce, intuitivo e rende di nuovo piacevole lavorare con i database."
"Ho provato molte GUI per database, ma Beekeeper trova l'equilibrio perfetto tra funzionalità e semplicità. Funziona e basta."