A linguagem SQL permite a junção de tabelas, porém as vezes esses comandos caem no esquecimento e/ou nos confundimos qual a real finalidade de cada um.
Vejamos a imagem abaixo, representando as várias formas de JOINS:
INNER JOIN
Interseção entre as tabelas.
Exemplo.:
SELECT <colunas> FROM Table_A A INNER JOIN Table_B B ON A.Key = B.Key
RIGHT JOIN e LEFT JOIN
Além da interseção, busca também resultados que não possuem interseção. Para LEFT JOIN são pegos os resultados da tabela a esquerda, além do resultado da interseção entre as duas tabelas, e para RIGHT JOIN são pegos os valores da tabela a direita, além do resultado da interseção entre as duas tabelas.
Exemplo:
SELECT <colunas> FROM Table_A A LEFT JOIN Table_B B ON A.Key = B.Key
SELECT <colunas> FROM Table_A A RIGHT JOIN Table_B B ON A.Key = B.Key
FULL OUTER JOIN
Além da interseção faz também LEFT JOIN e RIGHT JOIN, ou seja, busca na tabela A resultados que não possuem interseção, busca na tabela B resultados que não possuem interseção, e por fim busca os resultados da interseção.
Exemplo:
SELECT <colunas> FROM Table_A A FULL OUTER JOIN Table_B B ON A.Key = B.Key