Hello pessoas, como vão? Nesse post eu irei falar sobre os tipos de joins (junções) existentes no SQL e qual cenário usar cada um deles. Na maioria das vezes estou sempre esquecendo até como faz um update e corro para o Google. Bom, vamos lá.
O que é o Join?
Basicamente, o join é a combinação de tabelas através de colunas em comum nessas tabelas (Primary Keys e Foreign Keys, prometo um dia falar disso).
Tipos de Joins
Existem três tipos de junções:
- Inner Join: busca os dados se estiverem presentes nas duas tabelas.
-
Outer Join: aqui, são de três tipos.
- Left Outer Join: busca os dados se estiverem presentes na tabela da esquerda.
- Right Outer Join: busca os dados se estiverem presentes na tabela da direita.
- Full Outer Join: busca os dados se estiverem presentes em qualquer uma das duas tabelas.
- Cross Join: um produto cartesiano de ambas tabelas, cruzamento de tabelas.
Tabela Pessoa
Tabela Endereço
Sintaxe
Inner Join
SELECT * FROM pessoa p
INNER JOIN endereco e on p.idpessoa = e.idpessoa
Um detalhe aqui, o inner é opcional. Isso de acordo com a documentação, ok? O legal é sempre especificar qual tipo de junção está fazendo, caso faça apenas join, o padrão é inner.
Left Outer Join
SELECT * FROM pessoa p
LEFT OUTER JOIN endereco e on p.idpessoa = e.idpessoa
Right Outer Join
SELECT * FROM pessoa p
RIGHT OUTER JOIN endereco e on p.idpessoa = e.idpessoa
Full Outer Join
SELECT * FROM pessoa p
FULL OUTER JOIN endereco e on p.idpessoa = e.idpessoa
Gente, outro detalhe aqui: o outer também é opcional, tá bom?
Left Join e Left Outer Join, são a mesma coisa.
-- uma observação, eu fiz os exemplos no MySQL e ele não suporta o FULL JOIN, então tive que fazer um UNION (falarei sobre isso em outro post) para poder simular o Full Join, sorry.
Cross Join
SELECT * FROM pessoa p
CROSS JOIN endereco e
Mas Gabriela, o que é esses p, esses e, que você está colocando em frente ao nome das tabelas?
Bom, isso são os alias (apelidos) que dei as tabelas para que não seja necessário estar sempre digitando o nome inteiro da tabela.
Tá, e esse idpessoa, por que você usou ele?
idpessoa é a chave primária da tabela pessoa. Na tabela endereço, o idpessoa é uma chave estrangeira que faz referência a tabela de pessoa, sendo assim, usado para fazer as junções entre as tabelas.
Gabi, quando eu devo usar cada um desse ai?
Tudo vai depender dos dados que você quer buscar e onde você vai buscar esses dados.
Então, até o momento é isso. Dúvidas, sugestões fiquem sempre à vontade para falar :)
Top comments (12)
Simples e direto, parabéns!
obrigada ❤️
Conteúdo simples e objetivo. Obrigada por postar!
Obrigada Bruna :)
Bem direto ao ponto e resume bem o que tentamos entender nas documentações extensas. Gostei muito do formato de perguntas e respostas ali!
Ansioso por mais artigos nesse formato :)
Obrigada pelo feedback, Leo <3
Bem elaborado e objetivo 👍
obrigada Felipe 😊
Parabéns pelo artigo, sua didática é muito boa e obrigado por compartilhar com a comunidade!
Muito obrigada :)
Excelente dona MariaDB, a didática ta boa e o conteúdo é bom tbm!
muito obrigada João ♥️