Un cross join produce un prodotto cartesiano tra le due tabelle, restituendo tutte le possibili combinazioni di tutte le righe. Non ha on clausola perché stai semplicemente unendo tutto a tutto.
Un full outer join è una combinazione di un left outer e right outer giuntura. Restituisce tutte le righe in entrambe le tabelle che corrispondono a where della query clausola, e nei casi in cui il on la condizione non può essere soddisfatta per quelle righe mette null valori per i campi non popolati.
Questo articolo di Wikipedia spiega i vari tipi di join con esempi di output forniti da un campione di tabelle.