Comandos SQL JOIN são fun­da­men­tais em análises e ma­ni­pu­la­ções de bancos de dados re­la­ci­o­nais. Eles permitem consultar e combinar dados re­la­ci­o­na­dos de várias tabelas em tabelas de re­sul­ta­dos. De­pen­dendo do caso de uso, você pode utilizar comandos JOIN como INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN ou FULL JOIN.

O que são comandos SQL JOIN?

Para se trabalhar com bancos de dados, seja lo­cal­mente ou em nuvem, a linguagem de pro­gra­ma­ção e banco de dados SQL é con­si­de­rada o padrão. Ela permite não apenas a criação de bancos de dados re­la­ci­o­nais, mas também a execução de consultas de dados por meio de comandos SQL. Entre os comandos mais im­por­tan­tes e fre­quen­te­mente uti­li­za­dos estão os da categoria de SQL JOIN.

SQL JOIN são comandos que permitem consultar, re­la­ci­o­nar e combinar dados de forma sig­ni­fi­ca­tiva entre di­fe­ren­tes tabelas. A única condição ne­ces­sá­ria é a exis­tên­cia de uma conexão lógica entre as tabelas. Essa conexão é es­ta­be­le­cida por meio de chaves primárias e es­tran­gei­ras apro­pri­a­das, através das quais os dados podem ser com­bi­na­dos usando comandos JOIN.

Dica

As chaves primárias e chaves es­tran­gei­ras são fun­da­men­tais para os comandos SQL JOIN. As chaves primárias iden­ti­fi­cam ex­clu­si­va­mente cada linha de uma tabela e não podem conter valores nulos. As chaves es­tran­gei­ras es­ta­be­le­cem uma conexão entre tabelas di­fe­ren­tes. Por exemplo, em uma tabela de fun­ci­o­ná­rios, “ID do Fun­ci­o­ná­rio” pode ser a chave primária. Em uma tabela de veículos, “ID do Veículo” pode ser a chave primária. Ambas as tabelas podem ser re­la­ci­o­na­das usando “ID do Veículo” como uma chave es­tran­geira na tabela de fun­ci­o­ná­rios.

Tipos de comandos SQL JOIN

De­pen­dendo do caso de uso, di­fe­ren­tes comandos JOIN podem ser aplicados. Primeiro, vamos revisar os pa­râ­me­tros básicos:

  • SELECT: Define as colunas que serão con­si­de­ra­das no SQL JOIN. Usando um asterisco *, você pode se­le­ci­o­nar o conjunto de dados inteiro.
  • FROM: Define a tabela da qual os dados serão com­bi­na­dos com outra tabela.
  • JOIN command: Gera uma tabela de re­sul­ta­dos conforme o comando JOIN, que vincula, combina ou compara dados se­le­ci­o­na­dos.
  • ON: Es­pe­ci­fica a condição do JOIN pela qual os dados re­cu­pe­ra­dos são com­bi­na­dos.

A sintaxe básica da maioria dos comandos SQL JOIN contém pa­râ­me­tros se­me­lhan­tes:

SELECT colunaA, colunaB, …
FROM tabelaA
JOIN-comando tabelaB
ON tabelaA.coluna = tabelaB.coluna
sql
Dica

Você está pro­cu­rando uma solução segura e poderosa para a gestão do seu sistema de banco de dados? Com o SQL Server Hosting oferecido pela IONOS, você tem acesso a ofertas de ser­vi­do­res e hos­pe­da­gem que cumprem os padrões alemães de proteção de dados, incluindo ser­vi­do­res em nuvem, ser­vi­do­res virtuais (VPS), ser­vi­do­res dedicados ou hos­pe­da­gem Linux com MSSQL, MySQL ou MariaDB.

VPS Hosting (Virtual Private Servers)
World-class VPS at America’s lowest price

Hos­pe­da­gem VPS poderosa e de baixo custo para rodar suas apli­ca­ções sob medida, com as­sis­tente pessoal e suporte 24 horas.

  • Save 50% or more vs leading hosts
  • Unlimited traffic & no setup fees 
  • 99.99% uptime gua­ran­teed
  • Free 24/7 premium support 

Os comandos SQL JOIN mais im­por­tan­tes são apre­sen­ta­dos a seguir.

SQL INNER JOIN

Este comando permite combinar dados de duas tabelas em uma tabela de re­sul­ta­dos quando dois valores coincidem em uma coluna comum. O INNER JOIN é o comando JOIN mais fre­quen­te­mente utilizado e é a con­fi­gu­ra­ção padrão quando nenhum tipo es­pe­cí­fico de JOIN é se­le­ci­o­nado.

Exemplo prático:

O INNER JOIN pode ser utilizado com uma tabela “Pedidos”, contendo as colunas “Número do Pedido”, “ID do Cliente”, “ID do Produto” e “Data do Pedido”, assim como com uma tabela “Clientes”, contendo as colunas “ID do cliente”, “Nome” e “Endereço”. A coluna “ID do cliente” atua como chave primária na tabela “Clientes” e como chave es­tran­geira na tabela “Pedidos”. O INNER JOIN combina, com base no ID do cliente, todos os pedidos e dados de clientes na tabela de re­sul­ta­dos.

O comando SQL INNER JOIN é o seguinte:

SELECT pedidos.número_pedido, clientes.nome, pedidos.produtoid, pedidos.data_pedido
FROM pedidos
INNER JOIN clientes
ON pedidos.clienteid = clientes.clienteid
sql

OUTER JOIN

OUTER JOIN é um termo abran­gente para os comandos SQL LEFT JOIN, RIGHT JOIN e FULL JOIN. Ao contrário do INNER JOIN, o SQL OUTER JOIN combina não apenas linhas cor­res­pon­den­tes, mas também linhas não cor­res­pon­den­tes usando o valor NULL. Uma ex­pli­ca­ção detalhada segue nas seções LEFT JOIN, RIGHT JOIN e FULL JOIN.

SQL LEFT JOIN

O comando LEFT JOIN conecta todos os dados de uma tabela à esquerda com os dados cor­res­pon­den­tes da tabela à direita. Para linhas que não cor­res­pon­dem, o comando retorna um valor NULL.

Exemplo prático:

O SQL LEFT JOIN combina tanto registros cor­res­pon­den­tes quanto não cor­res­pon­den­tes de uma tabela à esquerda “Clientes” com uma tabela à direita “Veículos”, usando a coluna comum “VeículoID”. Di­fe­ren­te­mente do INNER JOIN, o comando também retorna dados não cor­res­pon­den­tes com o valor NULL.

O comando SQL LEFT JOIN é o seguinte:

SELECT  *
FROM  clientes
LEFT JOIN  veículos
ON  clientes.veículoid  =  veículos.veículoid
### SQL RIGHT JOIN
O comando RIGHT JOIN conecta dados **da tabela à direita com dados correspondentes da tabela à esquerda**. Quando não há correspondência, também aparece um valor NULL nas colunas da tabela à esquerda.
**Exemplo prático**:
O comando SQL RIGHT JOIN adiciona, com base no `Id do Cliente`, todos os dados selecionados da tabela à direita, “Pedidos”, à tabela à esquerda, “Clientes”. Quando não há correspondência, o comando retorna o valor NULL – por exemplo, se para um `Id do Cliente` não houver pedidos nem nomes.
O comando SQL RIGHT JOIN é o seguinte:
```sql
SELECT  pedidos.numero_pedido, clientes.nome, pedidos.produtoid, pedidos.data_pedido
FROM  clientes
RIGHT JOIN  pedidos
ON  pedidos.clienteid  =  clientes.clienteid
sql

SQL FULL JOIN

O comando FULL JOIN é uma com­bi­na­ção de LEFT JOIN e RIGHT JOIN e também é conhecido como FULL OUTER JOIN. Esse comando reúne todos os registros e colunas de ambas as tabelas. Quando não há cor­res­pon­dên­cia, o comando retorna valores NULL.

Exemplo prático:

O FULL JOIN combina todos os dados cor­res­pon­den­tes e não cor­res­pon­den­tes de uma tabela à direita “Fun­ci­o­ná­rios” com uma tabela à esquerda “De­par­ta­mento” com base no ID do de­par­ta­mento. Se não houver um de­par­ta­mento cor­res­pon­dente, será exibido um valor NULL na coluna de De­par­ta­mento.

O comando SQL FULL JOIN é como segue:

SELECT  *
FROM  funcionários
FULL JOIN  departamento
ON  funcionários.departamentoid  =  departamento.departamentoid
### CROSS JOIN
O `CROSS JOIN` é também conhecido como JOIN cartesiano. Ele combina todos os registros da tabela esquerda com todos os registros da tabela direita **independentemente de correspondências**. Como ele retorna todas as combinações possíveis, não é necessário um parâmetro ON para uma condição de JOIN.
**Exemplo prático**:
O `CROSS JOIN` combina todos os dados da tabela direita “Produtos” com a tabela à esquerda “Pedidos”.
O comando SQL `CROSS JOIN` é como segue:
```sql
SELECT  *
FROM  produtos
CROSS JOIN  pedidos
sql

NATURAL JOIN

O comando NATURAL JOIN combina todos os registros de duas tabelas com base em colunas comuns. O parâmetro ON não é ne­ces­sá­rio, pois a coluna comum não é uma exigência, e o comando au­to­ma­ti­ca­mente une as colunas comuns das tabelas.

Exemplo prático:

O NATURAL JOIN combina as tabelas “Equipe” e “De­par­ta­mento” com base nas colunas comuns. O comando retorna re­sul­ta­dos apenas se houver colunas com o mesmo nome em ambas as tabelas .

O SQL NATURAL JOIN é como segue:

SELECT  *
FROM  pedidos
NATURAL JOIN  departamento
sql

SQL SELF JOIN

O comando SQL SELF JOIN combina uma tabela com ela mesma, tratando-a como tabela esquerda e direita. Você pode, portanto, usar qualquer outro comando para uma operação de SELF JOIN. Na sintaxe, t1 e t2 são aliases para a tabela direita e esquerda, já que é a mesma tabela.

Sintaxe Básica com Exemplo de LEFT JOIN:

SELECT  *
FROM  tabelaA AS t1
LEFT JOIN  tabelaA AS t2
ON  t1.nome_coluna  =  t2.nome_coluna
sql
Dica

Para uma visão rápida da aplicação de SQL, veja também nossa in­tro­du­ção ao SQL com exemplos.

Ir para o menu principal