Skip to content

Um guia para usar junções internas em SQL para agrupar dados de várias tabelas

4 de abril de 2021

Bancos de dados relacionais são estáveis ​​para muitas empresas. Eles são criados com uma linguagem de computador chamada Structured Query Language (SQL). Se você trabalha com bancos de dados relacionais, ocasionalmente examinará ou reunirá dados localizados em mais de uma tabela do banco de dados.

O que é uma instrução SQL JOIN?

Uma instrução SQL JOIN torna possível unir duas ou mais tabelas, geralmente com base em uma coluna relacionada, de modo que os dados sejam tratados como se estivessem localizados em uma tabela. As tabelas em si não são alteradas pela junção. SQL JOIN é flexível e funcional. Embora existam vários tipos de junções, a junção interna é uma das mais fáceis de entender e usar. Dê uma olhada nas seguintes instruções SQL que ilustram como combinar resultados de três tabelas diferentes usando uma junção interna.

Exemplo de junção interna

Por exemplo, pegue as tabelas que contêm motoristas em uma mesa e combinações de veículos na segunda. A junção interna ocorre onde o veículo e o motorista estão localizados na mesma cidade. A junção interna seleciona todas as linhas de ambas as tabelas que contêm uma correspondência entre as colunas de localização. A instrução SQL abaixo combina dados das tabelas Motoristas e Veículos nos casos em que o motorista e o veículo estão localizados na mesma cidade: SELECT sobrenome, nome, tag
DE motoristas, veículos
ONDE drivers.location = Vehicles.location

Esta consulta produz os seguintes resultados: tag lastname firstname
——– ——— —
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Agora, estenda este exemplo para incluir uma terceira tabela. Para incluir apenas motoristas e veículos presentes em locais que estão abertos no fim de semana, traga uma terceira tabela para a consulta estendendo a instrução JOIN da seguinte maneira: SELECT sobrenome, nome, tag, open_weekends
DE motoristas, veículos, locais
ONDE drivers.location = Vehicles.location
AND Vehicles.location = locations.location
AND locations.open_weekends = ‘Sim’

Esta consulta produz os seguintes resultados: lastname firstname tag open_weekends
——– ——— — ————-
Baker Roland H122JM sim
Jacobs Abraham J291QR sim
Jacobs Abraham L990MY sim

Esta extensão poderosa para a instrução SQL JOIN básica combina dados de uma maneira complexa. Além de combinar tabelas com uma junção interna, essa técnica combina várias tabelas com outros tipos de junções.

Outros tipos de junções

Quando as tabelas têm um registro correspondente, as junções internas são o caminho a percorrer, mas às vezes uma tabela não tem um registro relacionado para os dados nos quais a junção é construída, então a consulta falha. Este caso exige um junção externa, que inclui resultados que existem em uma tabela, mas não tem uma correspondência correspondente na tabela associada. Além disso, você pode escolher usar um tipo diferente de associação, dependendo das circunstâncias. Esses outros tipos de junções são:

  • Junção externa esquerda (junção à esquerda): Contém todos os registros da tabela à esquerda, mesmo se a tabela à direita não tiver um registro correspondente.
  • Junção externa direita (junção à direita): Retorna todas as informações relevantes da tabela da direita, mesmo se a tabela da esquerda não tiver uma correspondência.
  • Adesão completa: Seleciona todos os registros de duas tabelas, tenham ou não uma condição de junção correspondente.