O que são JOINs no SQL?
Em SQL, os JOINs são utilizados para combinar linhas de diferentes tabelas baseadas em uma condição de igualdade entre colunas específicas. Existem vários tipos de JOINs disponíveis, cada um com suas próprias características e usos específicos.
Neste artigo, vamos discutir os principais tipos de JOINs e como usá-los.
Quais são os JOINs disponíveis dentro do SQL?
Nas explicações do JOINs serão usadas duas tabelas de exemplo. A tabela Maio e a tabela Junho são mostradas abaixo. Elas são tabelas que informam a quantidade de vendas dos funcionários naquele respectivo mês
Maio
Matrícula | Vendas |
Mateus | 78 |
Henrique | 23 |
Pedro | 10 |
Junho
Matrícula | Vendas |
Mateus | 80 |
Henrique | 50 |
Lucas | 7 |
Perceba que a única diferença entre elas, além do número de vendas, é o funcionário Pedro que tá na tabela A, mas não está na tabela B. O motivo? Não sabemos. Uma possível demissão, quem sabe, mas isso não afeta em nada nossa consulta.
Agora com as tabelas definidas, vamos mostrar quais são os JOINs que podemos realizar no SQL!
INNER JOIN
Este é o tipo mais comum de JOIN e é usado para combinar linhas de duas tabelas onde há uma correspondência entre as colunas especificadas. A consulta resultante inclui somente as linhas que correspondem à condição de igualdade. Por exemplo:
Código INNER JOIN |
SELECT * FROM
Maio INNER JOIN Junho ON Maio.Matricula = Junho.Matricula |
Esse código irá retornar o seguinte resultado:
Matrícula | Maio.Vendas | Junho.Vendas |
Mateus | 78 | 80 |
Henrique | 23 | 50 |
O INNER JOIN juntou as colunas em uma só, o que vem antes o nome da tabela que está antes e após o INNER JOIN na tabela serão as tabelas que irão ser unidas.
Essa união segue sempre um critério e é basicamente isso que irá diferenciar os JOINs o INNER JOIN irá devolver no seu resultado apenas as interseções da condição de junção que você está usando.
Em nosso caso, a condição de junção é Maio.Matricula = Junho.Matricula, desse modo, o INNER JOIN só retornará com as interseções.
LEFT JOIN
Este tipo de JOIN combina linhas da tabela à esquerda (especificada antes do JOIN) com as linhas da tabela à direita (especificada depois do JOIN) onde há uma correspondência entre as colunas especificadas. A consulta resultante inclui todas as linhas da tabela à esquerda, mesmo que não haja correspondência na tabela à direita. Por exemplo:
Código LEFT JOIN |
SELECT * FROM
Maio LEFT JOIN Junho ON Maio.Matricula = Junho.Matricula |
Matrícula | Maio.Vendas | Junho.Vendas |
Mateus | 78 | 80 |
Henrique | 23 | 50 |
Pedro | 10 | NULL |
RIGHT JOIN
Este tipo de JOIN é similar ao JOIN LEFT, mas inclui todas as linhas da tabela à direita, mesmo que não haja correspondência na tabela à esquerda
Código RIGHT JOIN |
SELECT * FROM
Maio LEFT JOIN Junho ON Maio.Matricula = Junho.Matricula |
Matrícula | Maio.Vendas | Junho.Vendas |
Mateus | 78 | 80 |
Henrique | 23 | 50 |
Lucas | NULL | 7 |
.FULL JOIN
Este tipo de JOIN combina linhas de ambas as tabelas, independentemente de haver ou não correspondência entre as colunas especificadas. A consulta resultante inclui todas as linhas de ambas as tabelas
Código FULL JOIN |
SELECT * FROM
Maio LEFT JOIN Junho ON Maio.Matricula = Junho.Matricula |
Matrícula | Maio.Vendas | Junho.Vendas |
Mateus | 78 | 80 |
Henrique | 23 | 50 |
Pedro | 10 | NULL |
Lucas | NULL | 13 |
Conclusão
Entender como funcionam os tipos de JOINs é essencial para quem planeja usar SQL no dia a dia. Com frequência é necessário fazer ligações entre as tabelas e é através dos JOINs que você fará isso, nesse artigo você aprendeu a como fazer isso.
Aqui em nosso blog, existem diversos artigos sobre SQL que irão te fazer aprender sobre problemas de SQL. Uma boa maneira de evoluir é lendo nossos artigos 🙂
Quer aprender exatamente tudo sobre SQL e virar um expert nessa linguagem tão usada no mercado de trabalho? Na Motim Academy existe um curso de SQL que te transformará em um verdadeiro expert do SQL capaz de impressionar qualquer um.