Índice:
Definição - O que significa Join?
Uma junção é uma operação SQL executada para estabelecer uma conexão entre duas ou mais tabelas de banco de dados com base em colunas correspondentes, criando um relacionamento entre as tabelas. As consultas mais complexas em um sistema de gerenciamento de banco de dados SQL envolvem comandos de junção.
Existem diferentes tipos de junções. O tipo de associação que um programador usa determina quais registros a consulta seleciona. Três algoritmos trabalham atrás das operações de junção: junção de hash, junção de mesclagem de classificação e junção de loop aninhada.
Techopedia explica Join
O tipo de junção padrão é a junção interna. Uma junção interna seleciona registros de duas tabelas que mantêm valores correspondentes. Registros que não contêm valores correspondentes ou comuns são excluídos da saída. A consulta compara cada linha da primeira tabela com as linhas da segunda tabela para encontrar linhas que satisfaçam o predicado de junção.
Por exemplo, se uma tabela contém detalhes dos funcionários e outra contém informações do gerente, uma junção pode ser realizada nas tabelas de funcionários e gerentes para exibir os funcionários que também são gerentes. A consulta a seguir exibe funcionários que são gerentes:
SELECT * FROM Employee INNER JOIN Gerente ON Employee.Managerid = Manager.Managerid
Uma junção é sempre realizada em colunas correspondentes, especificadas na cláusula "ON" da consulta. A coluna correspondente neste exemplo é "Managerid". Como o operador '=' é usado, ele é chamado de equijoin.
Uma junção natural também produz a mesma saída, mas usa uma palavra-chave "USING" na cláusula de junção. A consulta acima pode ser modificada da seguinte maneira para indicar uma junção natural:
SELECIONAR funcionário, gerente DE Funcionário INNER JOIN Manager USING (Managerid)
Mesmo se uma coluna correspondente não for especificada, uma junção ainda será executada entre duas tabelas. Esse tipo de junção é conhecido como junção cruzada (às vezes chamada de produto cartesiano), que é a forma mais simples de junção. Como uma restrição na chave não é especificada, todas as linhas da primeira tabela são unidas a todas as linhas da segunda tabela. Se a primeira tabela tiver duas linhas e a segunda tabela tiver três linhas, a saída terá seis linhas.
A junção externa é outro tipo de junção importante. Junções externas, em geral, recebem todos os registros de uma tabela e registros correspondentes da outra tabela como saída. Uma junção externa pode ser uma junção externa esquerda ou externa. Em uma junção externa esquerda, todas as tabelas da tabela esquerda - mesmo que não atendam às condições correspondentes - e as linhas correspondentes da tabela direita são exibidas na saída. Em uma junção externa direita, todas as linhas da tabela direita e as linhas correspondentes da tabela esquerda são exibidas como saída.
Em casos raros, uma tabela pode ser unida a ela mesma. Isso é chamado de auto-junção.