Desmistificando o JOIN.

Um tutorial simples e objetivo para desconstruir nosso processo de desenvolvimento.

Helena Strada
4 min readApr 25, 2019

Antes de começar, saiba que você pode encontrar o script e o excel utilizados aqui no repositório do GitHub indicado no final do texto.

Neste post curto e objetivo, trago duas tabelas criadas no SQL Server, para realizarmos uma intersecção entre elas e mostrar seus respectivos dados.

No exemplo abaixo, criamos um cenário que contém os seguintes tópicos: eventos e tipos de eventos. Cada evento possuirá um tipo de evento (sem entrar no contexto da criação ou dos valores em si, mas sim no comando para realizar a intersecção).

Tabelas de Eventos e Tipos de Eventos.

Um mecanismo bem comum em bancos de dados relacionais é o de relacionar dados de duas ou mais tabelas, gerando algo semelhante com o apresentado abaixo:

Resultado final que será apresentado.
Modelo utilizado no excel.

Partindo desse ponto, quais são os dados que temos em comum entre as duas tabelas?

O tipoeventoid da tabela EVENTOSs e o tipoeventoid da tabela TIPOEVENTOS, correto?

Dados em comum entre as duas tabelas.

Vamos estabelecer uma comparação entre elas no código:

Colunas de comparação entre as duas tabelas.

Depois, é possível indicar que o primeiro tipoeventoid refere-se a tabela EVENTOS e o segundo refere-se a tabela TIPOEVENTOS (nota-se que, nesse cenário, não importa a ordem de comparação).

Identificando de quais tabelas as colunas se referem.

Logo em seguida, iremos identificar quais tabelas queremos fazer a seleção.

Colocando as tabelas.

No SQL, colocamos from na primeira tabela e (inner) join na segunda tabela, para então trazermos a intersecção entre elas, colocando on na frente da condição, como mostra o código:

Comandos SQL para as tabelas.

Na última parte desse processo, precisamos identificar quais dados das tabelas gostaríamos de mostrar e indicá-los na frente de um select. Por exemplo, como mostra o código abaixo, eu só quero o título da tabela EVENTOS (EVENTOS.TITULO) e o nome da tabela TIPOSEVENTOS (TIPOEVENTOS.NOME).

Selecionando as colunas para apresentação.

Em resumo:

Quais colunas apresentam os mesmos dados nas duas tabelas?

E elas pertencem à quais tabelas?

De qual (from ) e para qual (join) tabela queremos juntar os dados?

E quais campos queremos selecionar para serem exibidos?

Pronto! Essa seleção de dados resultará uma tabela assim:

Resultado final com a intersecção entre Eventos e Tipos de Eventos.

Achou muito verboso? Spoiler: tem como encurtar os nomes usando um recurso chamado “alias”, mas isso fica para um próximo post! Dá só uma olhada como ficaria o nosso select:

Todo o conteúdo utilizado neste post está disponível no GitHub. E, por favor, caso queira enviar alguma sugestão, deixe seu comentário ou envie uma dica. Ficarei muito grata.

--

--