Jump to content

Entendendo os tipos de SQL JOINS


Marcos Santos

Postagens Recomendadas

Opa, tudo bom você?
Nesse tópico vamos abortar um assunto muito importante em bancos SQL, que é as questões dos JOINS entre tabelas. Os JOINS em um primeiro momento, cria muitas duvidas na nossa cabeça e pode ser difícil de entender o conceito no inicio, mas nesse tópico iremos abordar de uma forma sucinta para tentar te ajudar.

Conceito
O conceito do SQL JOIN é um comando SQL utilizado em querys de busca para trazer colunas relacionadas de tabelas distintas, com relação entre as mesmas, podendo ser chaves estrangeiras, colunas que possui registros iguais entre outros.
Existem diferentes tipos de JOINS e nessa tópico iremos abordar os 4 mais utilizados no dia a dia:

  • INNER JOIN
  • RIGHT JOIN
  • LEFT JOIN
  • FULL JOIN

Aplicando na prática
Para o entendimento dos JOINS iremos aplicar um pequeno exemplo utilizando um banco simples com duas tabelas, uma tabela de gatos e outras de cachorros, que vão possuir uma coluna em comum que vai ser a de nomes.

 

  • Tabela de cachorros
    CREATE TABLE cachorros(id int,nome varchar(200));
    
    insert into cachorros(id, nome)
    values
    (1,'Mel'),
    (2,'Bob'),
    (3,'Luna'),
    (4,'Zeca'),
    (5,'Zeus'),
    (6,'Nina');

     

 

  • Tabela de gatos:
    CREATE TABLE gatos(id int,nome varchar(200));
    
    insert into gatos(id, nome)
    values
    (1,'Junior'),
    (2,'Mia'),
    (3,'Luna'),
    (4,'Bob'),
    (5,'Félix'),
    (6,'Nina');

 

INNER JOIN: O INNER JOIN é comando mais comum e mais fácil de se entender, ele basicamente irá retornar os registros em comum entre as tabelas relacionadas. No nosso exemplo o retorno vai ser de registros que possuem nomes iguais em ambas as tabelas de gatos e cachorros.

  • Representação gráfica INNER JOIN:image.png
  • Comando SQL: 
    select gt.id, gt.nome, c.id, c.nome
    from gatos gt inner join cachorros c on gt.nome = c.nome;

     

  • Rodando esse comando obtivemos esses registros com nomes comuns em ambas as tabelas de cachorros e gatos.image.png  

 

 

RIGHT JOIN: Quando usamos o RIGHT JOIN será retornado todo os retornos da tabela direita juntamente com com os registros que possui algo em comum com a tabela a esquerda.

 

  • Representação gráfica RIGHT JOIN: image.png
  • Comando SQL: 
    select gt.id, gt.nome, c.id, c.nome
    from gatos gt right join cachorros c on gt.nome = c.nome;

     

 

  • Rodando o comando obtivemos esses registros retornados, como foi ditos todos os registros da tabela de cachorros e os registros na tabela de gatos com nomes em comum.                            image.png                                                                 

 

 

LEFT JOIN: Com o LEFT JOIN conseguimos retornar todos os registros da tabela a esquerda, além de todos os registros em comuns com a tabela a direita.

  • Representação gráfica LEFT JOIN: image.png
  • Comando SQL: 
    select gt.id, gt.nome, c.id, c.nome
    from gatos gt left join cachorros c on gt.nome = c.nome;
  • Rodando o comando SQL foram retornados esses registros, todos os gatos da tabela de gatos e os cachorros que possuem nomes em com os gatos.                                                 image.png                                             

 

 

FULL JOIN: O FULL JOIN por sua vez, irá retornar todos os registros de ambas as tabelas relacionadas, no nosso exemplo vai ser retornado todos os gatos e cachorros de nosso banco de teste.

  • Representação gráfica FULL JOIN:image.png
  • Comando SQL:
    select gt.id, gt.nome, c.id, c.nome
    from gatos gt full join cachorros c on gt.nome = c.nome;

 

 

 

  • Resultado obtido com o FULL JOIN: image.png

 

 

Conclusão:
Esse tópico foi um resumo bem básico sobre os JOINS com um pequeno exemplo para tentar auxiliar no entendimento sobre o assuntos.
Espero que tenha ajudado. Qual quer coisa que pode ser adicionado deixe um comentário, que vai auxiliar no desenvolvimento do nosso fórum e ajudara nossa comunidade.
Muito obrigado e até a próxima!

  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora
  • Quem está online   0 Membros, 0 Anônimos, 53 Visitantes (Ver lista completa)

    • There are no registered users currently online


×
×
  • Create New...