Skip to main content

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 ...