🔍 Cláusulas JOIN e INNER JOIN
As cláusulas JOIN e INNER JOIN são usadas de maneira intercambiável no padrão SQL, pois JOIN é equivalente a INNER JOIN. Elas são utilizadas em consultas SQL para combinar registros de duas tabelas com base em colunas que possuem valores em comum.
O JOIN e o INNER JOIN retornam apenas os registros que possuem correspondência em ambas as tabelas, ou seja, a instrução exibe apenas as linhas em que há um relacionamento entre as duas tabelas envolvidas.
📌 Utilidade do INNER JOIN (ou JOIN)
As instruções JOIN e INNER JOIN são amplamente utilizadas quando você deseja obter apenas os dados que estão presentes em ambas as tabelas, excluindo registros que não possuem correspondência. Elas são úteis em:
✔️ Análises de dados que requerem informações completas e relacionadas entre tabelas.
✔️ Normalização de dados, permitindo a divisão de informações entre múltiplas tabelas e sua junção eficiente.
✔️ Consultas relacionais onde se deseja garantir que o resultado apresente apenas combinações válidas de dados.
🔄 Diferença entre JOIN e INNER JOIN
A principal diferença entre JOIN e INNER JOIN é sintática:
-
O INNER JOIN é explicitamente nomeado na consulta.
-
O JOIN é uma forma mais simplificada, que por padrão é interpretada pelo SQL como um INNER JOIN.
-
O uso de um ou outro não altera o comportamento da consulta, mas o INNER JOIN torna o tipo de junção mais claro e explícito.
🖥️ Exemplo de Uso
Vamos demonstrar as instruções com INNER JOIN, que pode ser trocado pelo JOIN sem impactar os resultados.
Considere as tabelas D2D_Customers e D2D_Orders, que compartilham a coluna Customer_id. A consulta abaixo retorna apenas os registros que possuem correspondência em ambas as tabelas:
SELECT
[Fields]
FROM
D2D_Customers D1
INNER JOIN D2D_Orders D2
ON D1.Customer_id= D2.Customer_id
📌 O que acontece nessa consulta?
-
Apenas os clientes que têm pedidos serão exibidos no resultado.
-
Se um cliente não tiver pedidos, ele não aparecerá.
📊 Representação Gráfica
No diagrama de Venn, o JOIN ou INNER JOIN corresponde à interseção das duas tabelas, representando os registros que existem em ambas:
📑 Resultados da Consulta
🔹 Caso 1: Correspondência Encontrada
Se um registro da tabela D2D_Customers encontrar correspondência pelo campo Customer_id na tabela D2D_Orders, os dados de ambas as tabelas serão combinados e exibidos no resultado.
🔸 Caso 2: Sem Correspondência
Se um registro da tabela D2D_Customers não tiver correspondência na tabela D2D_Orders, ou vice-versa, esse registro não será incluído no resultado da consulta.
🔗 Relacionamentos 1:1 e 1:n
Assim como no LEFT JOIN e RIGHT JOIN, ao trabalhar com JOIN ou INNER JOIN, é importante entender a natureza do relacionamento entre as tabelas envolvidas, pois isso influencia o resultado da consulta.
🔹 Relacionamento 1:1 (Um para Um)
Nesse tipo de relacionamento, cada registro na tabela D2D_Customers corresponde a, no máximo, um único registro na tabela D2D_Orders, e vice-versa.
📌 Se houver um relacionamento 1:1, o resultado refletirá essas correspondências únicas.
🔸 Relacionamento 1:n (Um para Muitos)
Em um relacionamento 1:n, cada registro na tabela D2D_Customers pode ter vários registros correspondentes na tabelaD2D_Orders.
📌 Isso significa que oJOIN ouINNER JOIN pode resultar em múltiplas linhas para um mesmo registro da tabelaD2D_Customers.
💡 Conclusão
✔️ OJOIN e oINNER JOIN são utilizados para trazer apenas os registros correspondentes entre duas tabelas. ✔️ Se houver um relacionamento válido entre os dados, as informações serão combinadas e exibidas corretamente. ✔️ Para visualizar registros sem correspondência, deve-se utilizarLEFT JOIN ouRIGHT JOIN.
🛠️ Compreender como utilizar essas cláusulas corretamente pode melhorar significativamente a eficiência das consultas SQL e garantir que os dados sejam extraídos com precisão!