Existem vários tipos de JOINS no SQL. O mais usado é o equijoin. Menos comum é o não-equijoin. Veremos também INNER JOIN e OUTER JOIN:
INNER JOIN vs OUTER JOIN
INNER JOIN conectam linhas em duas ou mais tabelas se e somente se houver linhas correspondentes em todas as tabelas que estão sendo unidas e o OUTER JOIN é mais inclusivo e conecta dados que possui ou não valores correspondentes em outra, a linha não correspondida ainda será incluída na saída.
Equijoins vs. Non-Equijoins
Os equijoins conectam dados em duas ou mais tabelas procurando dados comuns entre as colunas das tabelas. Em outras palavras, um equijoin procura uma correspondência exata de dados.
Os non-equijoins conectam dados procurando relacionamentos que não envolvem igualdade, como relacionamentos “menor que” ou “maior que”, ou situações em que os dados em uma tabela estão dentro de um intervalo de valores em outra. A maioria das junções com as quais trabalharemos será equivalente, mas veremos também as que não são.
Há outros tipos de JOINS que são os SELF, e NATURAL JOINS.
SELF JOIN
Um SELF JOIN é uma auto-junção, isso significa que uma tabela que se une a ela mesma. Um SELF JOIN é baseada no valor em uma coluna de uma tabela, comparando-se com os valores em outra coluna – geralmente uma coluna diferente – na mesma tabela. Veja um exemplo:

A consulta acima faz um SELF JOIN, ela une a tabela POSITION a ela mesma unindo as colunas REPORTS_TO com a coluna da mesma tabela POSITION_ID.