Insights que transformam sua carreira!

Receba soluções práticas, dicas que economizam tempo e insights exclusivos de programação que realmente funcionam. Junte-se a mais de 5.000 assinantes!

SQL – Entenda Inner, Left, Right, Outer/Full e Cross Join

Neste artigo vamos explicar como funcionam as instruções de consultas SQL Inner, Left, Right, Outer/Full e Cross Join

Dê um salto na sua carreira de programação!

Receba soluções práticas, economize tempo com dicas eficazes e conquiste insights exclusivos para acelerar sua evolução na área de TI. Junte-se a mais de 5.000 desenvolvedores que já estão um passo à frente!

Quero me destacar agora!

Compartilhe:

Os comandos JOIN no SQL são fundamentais para combinar e relacionar dados entre múltiplas tabelas em um banco de dados relacional. Cada tipo de JOIN – INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN e CROSS JOIN – possui uma função específica, permitindo extrair informações detalhadas e relevantes para análises e aplicações. Neste guia completo, você entenderá como cada JOIN funciona, verá exemplos práticos e aprenderá a aplicar essas operações de maneira eficiente para resolver problemas comuns em SQL. Quer seja para otimizar relatórios, consolidar dados ou simplificar consultas, dominar os JOINs é essencial para qualquer desenvolvedor ou analista de dados. Vamos explorar cada tipo de JOIN e ver como eles podem transformar a forma como você consulta seus dados.

Para exemplo vamos tomar estas duas tabelas (Tabela A e Tabela B):

Usando ambas as tabelas em todos os exemplos, vamos ilustrar os tipos mais comuns de join.

Conta Exclusiva ChatGPT: Acesso Ilimitado

Desbloqueie o poder do ChatGPT com recursos premium. Aproveite 80,5% de desconto e garantia de 100% de satisfação. Junte-se hoje e viva a melhor experiência de chat com IA!

Cypress, do Zero à Nuvem: domine a automação de testes com confiabilidade e eficiência

Aprimore suas habilidades de automação de testes com Cypress, desde o início até a integração contínua.

Saiba Mais

💻 Torne-se um Desenvolvedor Fullstack!

Domine as tecnologias mais requisitadas do mercado e conquiste sua carreira dos sonhos como Desenvolvedor Fullstack. Inscreva-se hoje!

Inscreva-se

Inner Join

INNER JOIN é uma cláusula que permite a junção entre duas ou mais tabelas, desde que hajam entrelaçamento entre todas. INNER JOIN é uma cláusula que permite a junção entre duas ou mais tabelas, desde que hajam entrelaçamento entre todas.

Esse é um formato comum de join, que retorna dados apenas quando as duas tabelas tem chaves correspondentes na cláusula ON do join.

Query:

SELECT TabelaA.*, TabelaB.* FROM TabelaA INNER JOIN TabelaB ON TabelaA.Chave = TabelaB.Chave Resultado:  De forma visual temos como o Inner Join: 
 
SELECT Clientes.Nome, Pedidos.PedidoID FROM Clientes INNER JOIN Pedidos ON Clientes.ClienteID = Pedidos.ClienteID;
 

Diferença entre INNER JOIN e LEFT JOIN

Enquanto o INNER JOIN combina todos os valores das duas tabelas e retorna no resultado somente as linhas presentes em ambas, o LEFT JOIN traz todas as linhas presentes na tabela 1 (ou tabela da esquerda) com os valores correspondentes da tabela 2.

VAI GOSTAR:

Left Join

Use a operação LEFT JOIN para criar uma junção externa esquerda. As junções externas esquerdas incluem todos os registros da primeira de duas tabelas (a da esquerda), mesmo se não houver valores correspondentes na segunda tabela (à direita). Use uma operação RIGHT JOIN para criar uma junção externa direita.

LEIA TAMBÉM: 21 comandos SQL essenciais para programadores e BI

LIVROS SQL E BANCO DE DADOS RECOMENDADOS:

1. SQL para Análise de Dados: Técnicas avançadas para transformar dados em insights

2. Sistemas de Banco de Dados

Diferença entre INNER JOIN e LEFT JOIN

Enquanto o INNER JOIN combina todos os valores das duas tabelas e retorna no resultado somente as linhas presentes em ambas, o LEFT JOIN traz todas as linhas presentes na tabela 1 (ou tabela da esquerda) com os valores correspondentes da tabela 2.

Exemplo de Left Join

É um dos formatos mais usados de join, que retorna a Tabela A inteira e apenas os registros que coincidirem com a igualdade do join na TabelaB (ou campos nulos para os campos sem correspondência).

Query:

SELECT TabelaA.*, TabelaB.* FROM TabelaA LEFT JOIN TabelaB ON TabelaA.Chave = TabelaB.Chave
 

Resultado:

De forma visual temos:

INNER JOIN : Retorna registros que possuem valores correspondentes nas duas tabelas; LEFT JOIN: Retorna todos os registros da tabela esquerda e os registros correspondentes da tabela direita; RIGHT JOIN: Retorna todos os registros da tabela da direita e os registros correspondentes da tabela da esquerda.

Outro exemplo:

Você quer listar todos os clientes, incluindo aqueles que ainda não fizeram pedidos.

 

Explicação: Esse LEFT JOIN retorna todos os clientes. Para clientes que não têm pedidos, a coluna PedidoID será NULL.

 

 

Curso Banco de Dados

Right Join

Retorna todos os registros da tabela direita e os registros correspondentes da tabela esquerda. A RIGHT JOIN combina dados de duas ou mais tabelas. A RIGHT JOIN começa a selecionar dados da tabela “direita” B e a corresponder às linhas da tabela “esquerda” A.

Segue o mesmo raciocínio do Left Join, mas se aplicando à tabela B em vez da A:

Query:

SELECT TabelaA.*, TabelaB.* FROM TabelaA RIGHT JOIN TabelaB ON TabelaA.Chave = TabelaB.Chave
 

Resultado:

 
Use a operação LEFT JOIN para criar uma junção externa esquerda. As junções externas esquerdas incluem todos os registros da primeira de duas tabelas (a da esquerda), mesmo se não houver valores correspondentes na segunda tabela (à direita). Use uma operação RIGHT JOIN para criar uma junção externa direita.

Full Outer Join

Por exemplo, isso nos permite ver cada funcionário que está em um departamento e cada departamento que tem um funcionário, mas também ver cada funcionário que não faz parte de um departamento e cada departamento que não tem um funcionário.

Conhecida como OUTER JOIN ou simplesmente FULL JOIN, este retorna todos os registros de ambas as tabelas.

Query:

SELECT TabelaA.*, TabelaB.* FROM TabelaA FULL OUTER JOIN TabelaB ON TabelaA.Chave = TabelaB.Chave
 

Resultado:

Basicamente, Clientes INNER JOIN Pedidos retorna apenas clientes que tenham feito pedidos. Clientes OUTER JOIN Pedidos retorna clientes sem pedidos (as colunas de Pedidos estarão com NULL) e, se a integridade referencial não for imposta, pedidos sem clientes.

Cross Join

A cláusula CROSS JOIN retorna todas as linhas das tabelas por cruzamento, ou seja, para cada linha da tabela esquerda queremos todos os linhas da tabelas direita ou vice-versa. Ele também é chamado de produto cartesiano entre duas tabelas.

Basicamente é o produto cartesiano entre as duas tabelas. Para cada linha de TabelaA, são retornadas todas as linhas de TabelaB.

É mais fácil entender o Cross Join como um “Join sem cláusula ON”, ou seja, todas as combinações de linhas de A e B são devolvidas.

Inclusive, se você fizer um Cross Join com cláusla ON, ele “vira” um mero Inner Join.

Query:

SELECT TabelaA.*, TabelaB.* FROM TabelaA CROSS JOIN TabelaB 
 

Ou ainda:

SELECT TabelaA.*, TabelaB.* FROM TabelaA, TabelaB 
 

Resultado:

Embora eu tenha demonstrado um bom uso desse recurso, muito cuidado ao utilizá-lo, especialmente com grandes volumes de dados, uma vez que o CROSS JOIN ou produto cartesiano, cria todas as combinações possíveis entre 2 ou mais ResultSets, cruzando cada linha da tabela A com cada linha da tabela B.

Muitas vezes, observamos JOIN’s (INNER, LEFT, RIGHT) mal construídos e que acabam fazendo um produto cartesiano não intencional, gerando muitas linhas indesejadas e trazendo um problema de performance na consulta.

Uma tabela comparativa

Clique na imagem para abrir em uma nova janela e visualizar melhor.

Considerações

Notar que todos os campos pedidos no select sempre retornam (desde que existam na tabela, obviamente), independente de existirem para aquela linha específica.

O que acontece no caso de uma linha ser retornada para apenas uma das tabelas é que os campos da outra vêm com conteúdo null.

Usualmente, caso você precise diferenciar um nulo que realmente exista na tabela de um nulo por falta de correspondência, basta ver se os campos usados na condição do ON não retornaram null também.

Leia também:

VIEWS em SQL: Vantagens e desvantagens

Android SDK Manager via linhas de comando

 
 
 
 

NOVOS CONTEÚDOS

Livros de DevOps com Kubernets    
As melhores extensões do Chrome na Chrome Web Store    
Vite: Simplificando a criação de projetos Front-end    
Metaverso das Coisas? Tendências tecnológicas para 2023    
Certificados Android vazados expõem milhões de smartphones    
Google lança ‘Now in Android’ sobre práticas de desenvolvimento    
Meta substitui linguagem de programação Java pela Kotlin    
Como fazer seu trabalho ser mais reconhecido    
10 séries e filmes sobre empreendedorismo para inspirar    
ITA oferece 10 cursos de Tecnologia a distância    
Risadas no trabalho aumentam engajamento e produtividade    
5 passos para expandir os negócios para o mercado internacional    
Como trabalhar com Promises JavaScript?    
Servidor Apache: o que é, como funciona e como instalar?    
Como fazer upload de uma imagem para o S3 usando Node.js?    
Editais e programas de financiamento que ainda pode se inscrever em 2022    
Setor de Games no Brasil crescerá 50% em cinco anos    
Como a blockchain muda a vida de refugiados em Gana    
Para que servem os generators no JS?    
10 livros e dicas para se tornar um líder técnico – Tech Leader    
CISOs estão tornando a segurança das APIs uma prioridade    
Clusters kubernetes hackeados por malware via PostgreSQL    
Os avatares do Roblox estão prestes a ficar mais expressivos    
Participação no Web Summit muda patamar das startups    
Ferramentas para rastrear baleias cripto e comprar no mergulho    
Plataforma oferece capacitação gratuita em programação    
Microsoft Azure: Novos recursos na Microsoft Cloud para Varejo    
Inteligência artificial que resolve problemas de programação    
Malware mira sites com WordPress e tenta quebrar senhas    
MEI terá novo valor de contribuição em 2023    
UiPath lista 7 tendências em automação de processos para 2023    
Google Docs facilita colocação de código sobre documentos    
O lado sombrio de um Super App como o WeChat    
Malware CryWiper destrói dados propositalmente    
A importância da tecnologia blockchain para a construção da Web3    
Sua carreira: Dê propósito ao seu trabalho    
12 livros sobre liderança e negócios para ler em 2023    
10 aplicativos do Google Play Store que contêm malware    
AWS e CNPq oferecem US$ 1,2 milhão em créditos para nuvem    
Extensão do Chrome é usado tomar controle e espionagem    
Open everything e APIs exigem cuidados com segurança    
As certificações mais buscadas pelo mercado de TI    
Lançamento da versão educacional gratuita do GameMaker    
Um Líder Tecnológico Incomum em inovação e sua empresa?

 

Gostou deste conteúdo?

Assine o E-Zine Ramos da Informática e receba semanalmente conteúdos exclusivos focados em desenvolvimento frontend, backend e bancos de dados para turbinar sua carreira tech.

📘 Conteúdo Exclusivo

Dicas, insights e guias práticos para alavancar suas habilidades em desenvolvimento e bancos de dados.

🚀 Hacks de Carreira

Ferramentas, atalhos e estratégias para se destacar e crescer rapidamente no mercado de tecnologia.

🌟 Tendências Tech

As novidades mais relevantes sobre desenvolvimento web, mobile e bancos de dados para você se manter atualizado.

Já somos mais de 5.000 assinantes! Junte-se a uma comunidade de profissionais que compartilham conhecimento e crescem juntos no universo tech.

Quero Assinar Agora

Compartilhe:

Ramos da Informática
Ramos da Informáticahttps://ramosdainformatica.com.br
Ramos da Informática é um hub de comunidade sobre linguagens de programação, banco de dados, DevOps, Internet das Coisas, tecnologia da indústria 4.0, Cyber Segurança e Startups.

RECENTES

ArcGIS Maps JavaScript: Novidades da Versão 4.32

O ArcGIS, desenvolvido pela Esri, é uma plataforma líder...

O Novo Ramos da Informática: Menos Ruído, Mais Valor

O jogo mudou. A maneira de buscar conhecimento e...

Mais de 1 milhão de vagas em cursos e oportunidades de emprego

A Ramos da Informática trouxe um compilado de diversas...

Hackathon com premiação de US$150 mil no estádio do PSG

A Chiliz, empresa de tecnologia blockchain para esportes e entretenimento,...

Destaques do Git 2.48

O projeto Git de código aberto acaba de lançar...
Sua assinatura não pôde ser validada.
Você fez sua assinatura com sucesso.

E-Zine Ramos da Informática

Conteúdo focado em desenvolvimeto backend, frontend, banco de dados e novas tecnologias. 


📧 Não perca tempo! Assine grátis agora mesmo e leve sua carreira ao próximo nível.

Dê um salto na sua carreira de programação!

Receba soluções práticas, economize tempo com dicas eficazes e conquiste insights exclusivos para acelerar sua evolução na área de TI. Junte-se a mais de 5.000 desenvolvedores que já estão um passo à frente!