Charles, bom dia.
JOINS: São usados para trazer registro de uma ou mais tabelas relacionadas.
Dentro de Joins nós temos subconjuntos:
INNER JOIN = Retorna registros apenas quando há correspondências em ambas as tabelas, ou seja, tanto a tabela da esquerda como a tabela da direita. Como assim tabela da esquerda e direita? São os relacionamentos das tabelas normais.
OUTER JOIN = Outer JOIN retorna registros entretanto não há uma necessidade de ter correspondências em ambas as tabelas. Dentro do OUTER JOIN nós temos também subconjuntos como LEFT JOIN - RIGHT JOIN.
Para fazer um JOIN não é necessário informar o INNER assim como para fazer um OUTER JOIN também não é necessário usar o OUTER.
Ex:
INNER JOIN:
SELECT nome, valor FROM compras JOIN compradores ON compradores.comprador_id = compradores.id WHERE data < '2010-08-09';
OUTER JOINS:
SELECT nome, valor FROM compras LEFT JOIN compradores ON compradores.comprador_id = compradores.id WHERE data < '2010-08-09';