🧚 Ei! O Beekeeper Studio é uma GUI de banco de dados rápida, moderna e open source Baixar
19 de maio de 2025 Por Matthew Rathbone

Unir tabelas é um dos conceitos mais importantes do SQL Server, permitindo combinar dados de várias tabelas para criar relatórios e análises relevantes. Seja para montar relatórios complexos ou fazer análise de dados, entender como os joins funcionam é essencial para qualquer desenvolvedor SQL.

Neste guia completo, vamos percorrer cada tipo de join no SQL Server com exemplos práticos, explicações claras e cenários do mundo real.

🔖 Referência rápida: Precisa de uma consulta rápida? Confira nosso Guia rápido de SQL JOIN com todos os tipos de JOIN, diagramas visuais e exemplos de código em um só lugar.

Entendendo os joins no SQL Server

Joins no SQL Server são operações que combinam linhas de duas ou mais tabelas com base em uma coluna relacionada entre elas. Os tipos de join mais comuns são:

  • INNER JOIN: retorna apenas os registros correspondentes de ambas as tabelas
  • LEFT JOIN: retorna todos os registros da tabela da esquerda, mais os registros correspondentes da tabela da direita
  • RIGHT JOIN: retorna todos os registros da tabela da direita, mais os registros correspondentes da tabela da esquerda
  • FULL OUTER JOIN: retorna todos os registros quando há correspondência em qualquer uma das tabelas

Preparando os dados de exemplo

Nos exemplos, vamos usar duas tabelas simples que representam um cenário comum de negócio:

Tabela Orders:

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    CustomerID INT,
    Product NVARCHAR(50),
    OrderDate DATE
);

INSERT INTO Orders VALUES 
(1, 1, 'Laptop', '2024-01-15'),
(2, 2, 'Mouse', '2024-01-16'),
(3, 3, 'Keyboard', '2024-01-17');
OrderID CustomerID Product OrderDate
1 1 Laptop 2024-01-15
2 2 Mouse 2024-01-16
3 3 Keyboard 2024-01-17

Tabela Customers:

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    Name NVARCHAR(50),
    City NVARCHAR(50)
);

INSERT INTO Customers VALUES 
(1, 'John Doe', 'New York'),
(2, 'Jane Smith', 'Los Angeles'),
(4, 'Alex Johnson', 'Chicago');
CustomerID Name City
1 John Doe New York
2 Jane Smith Los Angeles
4 Alex Johnson Chicago

INNER JOIN

Um INNER JOIN retorna apenas as linhas que têm um valor correspondente em ambas as tabelas. É o tipo de join mais usado e é perfeito quando você quer ver apenas os registros que existem nas duas tabelas.

Quando usar INNER JOIN

  • Quando você precisa de dados que existem em ambas as tabelas
  • Para relatórios que mostram relacionamentos completos
  • Quando você quer excluir registros incompletos

Exemplo de consulta SQL

SELECT 
    o.OrderID,
    c.Name,
    c.City,
    o.Product,
    o.OrderDate
FROM Orders o
INNER JOIN Customers c ON o.CustomerID = c.CustomerID;

Resultado

OrderID Name City Product OrderDate
1 John Doe New York Laptop 2024-01-15
2 Jane Smith Los Angeles Mouse 2024-01-16

Pontos principais:

  • Apenas 2 linhas retornadas (OrderID 3 excluído porque CustomerID 3 não existe na tabela Customers)
  • Apenas clientes que fizeram pedidos aparecem no resultado
  • A condição de join (o.CustomerID = c.CustomerID) determina quais linhas correspondem

LEFT JOIN

Um LEFT JOIN (também chamado de LEFT OUTER JOIN) retorna todas as linhas da tabela da esquerda, mais as linhas correspondentes da tabela da direita. Quando não há correspondência, aparecem valores NULL nas colunas da tabela da direita.

Quando usar LEFT JOIN

  • Quando você precisa de todos os registros da tabela principal (tabela da esquerda)
  • Para relatórios que mostram lacunas nos dados ou relacionamentos ausentes
  • Quando você quer encontrar registros sem correspondência

Exemplo de consulta SQL

SELECT 
    o.OrderID,
    c.Name,
    c.City,
    o.Product,
    o.OrderDate
FROM Orders o
LEFT JOIN Customers c ON o.CustomerID = c.CustomerID;

Resultado

OrderID Name City Product OrderDate
1 John Doe New York Laptop 2024-01-15
2 Jane Smith Los Angeles Mouse 2024-01-16
3 NULL NULL Keyboard 2024-01-17

Pontos principais:

  • Todos os 3 pedidos aparecem no resultado (preserva todos os dados da tabela da esquerda)
  • OrderID 3 mostra NULL nas informações do cliente porque CustomerID 3 não existe na tabela Customers
  • Útil para identificar pedidos sem dados de cliente válidos

RIGHT JOIN

Um RIGHT JOIN (também chamado de RIGHT OUTER JOIN) retorna todas as linhas da tabela da direita, mais as linhas correspondentes da tabela da esquerda. Quando não há correspondência, aparecem valores NULL nas colunas da tabela da esquerda.

Quando usar RIGHT JOIN

  • Quando você precisa de todos os registros da tabela da direita
  • Menos comum que o LEFT JOIN (geralmente dá para reescrever como LEFT JOIN)
  • Útil quando os dados “principais” estão na segunda tabela

Exemplo de consulta SQL

SELECT 
    o.OrderID,
    c.Name,
    c.City,
    o.Product,
    o.OrderDate
FROM Orders o
RIGHT JOIN Customers c ON o.CustomerID = c.CustomerID;

Resultado

OrderID Name City Product OrderDate
1 John Doe New York Laptop 2024-01-15
2 Jane Smith Los Angeles Mouse 2024-01-16
NULL Alex Johnson Chicago NULL NULL

Pontos principais:

  • Todos os 3 clientes aparecem no resultado (preserva todos os dados da tabela da direita)
  • Alex Johnson mostra NULL nas informações de pedido porque ainda não fez nenhum pedido
  • Útil para identificar clientes que ainda não fizeram compras

FULL OUTER JOIN

Um FULL OUTER JOIN (ou apenas FULL JOIN) retorna todas as linhas quando há correspondência em qualquer uma das tabelas. Ele combina os resultados do LEFT e do RIGHT JOIN, mostrando valores NULL onde não há correspondência em algum dos lados.

Quando usar FULL OUTER JOIN

  • Quando você precisa de todos os registros de ambas as tabelas
  • Para análises de dados abrangentes
  • Para identificar todos os relacionamentos e lacunas entre tabelas

Exemplo de consulta SQL

SELECT 
    o.OrderID,
    c.Name,
    c.City,
    o.Product,
    o.OrderDate
FROM Orders o
FULL OUTER JOIN Customers c ON o.CustomerID = c.CustomerID;

Resultado

OrderID Name City Product OrderDate
1 John Doe New York Laptop 2024-01-15
2 Jane Smith Los Angeles Mouse 2024-01-16
3 NULL NULL Keyboard 2024-01-17
NULL Alex Johnson Chicago NULL NULL

Pontos principais:

  • Todas as 4 linhas possíveis aparecem no resultado
  • Mostra tanto pedidos órfãos (OrderID 3) quanto clientes sem pedidos (Alex Johnson)
  • Combina a visão abrangente do LEFT e do RIGHT JOIN
  • A visão mais completa do relacionamento entre as tabelas

Principais lições

Entender os joins no SQL Server é essencial para consultar bancos de dados com eficiência. Aqui vai uma referência rápida:

Tipo de join Retorna Caso de uso
INNER JOIN Apenas registros correspondentes O mais comum; quando você precisa de relacionamentos completos
LEFT JOIN Toda a esquerda + correspondentes da direita Quando a tabela da esquerda é a principal; encontrar dados ausentes na direita
RIGHT JOIN Toda a direita + correspondentes da esquerda Menos comum; quando a tabela da direita é a principal
FULL OUTER JOIN Todos os registros de ambas Análise completa; encontrar todos os relacionamentos e lacunas

Boas práticas

  1. Use aliases de tabela (o para Orders, c para Customers) para deixar as consultas mais limpas
  2. Comece com INNER JOIN se estiver em dúvida e ajuste conforme os requisitos
  3. Prefira LEFT JOIN a RIGHT JOIN para melhor legibilidade
  4. Sempre especifique a condição de join com a cláusula ON
  5. Pense no desempenho - joins em colunas indexadas são mais rápidos

Dicas para praticar

Para dominar os joins no SQL Server:

  1. Comece com conjuntos de dados pequenos como os exemplos acima
  2. Desenhe diagramas de Venn para visualizar o que cada join retorna
  3. Experimente diferentes estruturas de tabelas e relacionamentos
  4. Use o SQL Server Management Studio ou o Beekeeper Studio para praticar
  5. Teste casos extremos como valores NULL e relacionamentos ausentes

Lembre-se: joins são fundamentais em bancos de dados relacionais. Depois de dominá-los, você conseguirá criar consultas poderosas que extraem insights relevantes dos seus dados.

Beekeeper Studio é um cliente de banco de dados gratuito e open source

A melhor ferramenta de consultas e edição de SQL que já usei. Tem tudo o que preciso para gerenciar meu banco de dados. - ⭐⭐⭐⭐⭐ Mit

O Beekeeper Studio é rápido, intuitivo e fácil de usar. Ele suporta vários bancos de dados e funciona muito bem no Windows, Mac e Linux.

A versão do Beekeeper para Linux tem 100% dos recursos, sem atalhos e sem concessões.

O que os usuários dizem sobre o Beekeeper Studio

★★★★★
"O Beekeeper Studio substituiu completamente meu antigo fluxo de trabalho com SQL. É rápido, intuitivo e torna o trabalho com banco de dados agradável de novo."
— Alex K., desenvolvedor de banco de dados
★★★★★
"Já testei muitas GUIs de banco de dados, mas o Beekeeper tem o equilíbrio perfeito entre recursos e simplicidade. Simplesmente funciona."
— Sarah M., engenheira full stack

Pronto para melhorar seu fluxo de trabalho com SQL?

download Baixar grátis