Diferença entre INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL OUTER JOIN

shape
shape
shape
shape
shape
shape
shape
shape

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 left join outer join

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

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *