Una cross join, cartesian join o product fornisce le basi (le infrastrutture informatiche) attraverso cui tutti i tipi di inner join operano. Il risultato di una cross join è il prodotto cartesiano di tutte le righe delle tabelle che concorrono alla query di join. È come dire che stiamo facendo una inner join senza impostare la regola di confronto o in cui la regola di confronto ritorna sempre vero.
Date le due tabelle di partenza A e B, la cross join si scrive A × B.
Esempio di cross join esplicito:
SELECT * FROM Impiegati CROSS JOIN Dipartimenti
Altro esempio implicito di cross join:
SELECT * FROM Impiegati, Dipartimenti;
Impiegati.Cognome | Impiegati.ID_dipartimento | Dipartimenti.Nome_dipartimento | Dipartimenti.ID_dipartimento |
---|---|---|---|
Rossi | 31 | Vendite | 31 |
Bianchi | 33 | Vendite | 31 |
Mancini | 33 | Vendite | 31 |
Monti | 34 | Vendite | 31 |
Santoro | 34 | Vendite | 31 |
Grassi | Null | Vendite | 31 |
Rossi | 31 | Tecnico | 33 |
Bianchi | 33 | Tecnico | 33 |
Mancini | 33 | Tecnico | 33 |
Monti | 34 | Tecnico | 33 |
Santoro | 34 | Tecnico | 33 |
Grassi | Null | Tecnico | 33 |
Rossi | 31 | Risorse umane | 34 |
Bianchi | 33 | Risorse umane | 34 |
Mancini | 33 | Risorse umane | 34 |
Monti | 34 | Risorse umane | 34 |
Santoro | 34 | Risorse umane | 34 |
Grassi | Null | Risorse umane | 34 |
Rossi | 31 | Promozione | 35 |
Bianchi | 33 | Promozione | 35 |
Mancini | 33 | Promozione | 35 |
Monti | 34 | Promozione | 35 |
Santoro | 34 | Promozione | 35 |
Grassi | Null | Promozione |