Join in SQL
CROSS JOIN
Esegue il prodotto cartesiano tra due tabelle, ed è equivalente a scrivere FROM tabella, tabella2
Sintassi: SELECT * FROM tabella1 CROSS JOIN tabella2 ON ...
THETA (INNER) JOIN
Combina ogni tupla di t1 che soddisfa le condizioni stabilite in ON con le tuple di t2 che soddisfano a loro volta le condizioni stabilite in ON.
Sintassi: SELECT * FROM tabella1 INNER JOIN tabella2 ON ...
LEFT JOIN
Inserisce tutte le tuple di t1 che soddisfano la condizione, assieme a quelle di t2. In caso t2 non abbia tuple che soddisfano la condizione, i suoi attributi vengono inseriti come NULL.
Sintassi: SELECT * FROM tabella1 LEFT JOIN tabella2 ON ...
RIGHT JOIN
Come il left join, ma preserva gli attributi di t2 (quindi il contrario di left join).
Sintassi: SELECT * FROM tabella1 RIGHT JOIN tabella2 ON ...
FULL JOIN
Combina inner join + left join + right join.
Attenzione, non è uguale al cross join!
Sintassi: SELECT * FROM tabella1 FULL JOIN tabella2 ON ...