Join e suas variações
Junções em Banco de Dados
Join e suas variações
Uma das dificuldades dos iniciantes na linguagem de programação SQL é a construção de consultas utilizando junções entre tabelas, um recurso fundamental para visualizar os dados de um banco relacional. Ao juntar as linhas de duas tabelas A e B, o SQL Server tenta combinar cada linha de A com todas as linhas de B, seguindo um critério estabelecido ao criar a junção. Assim, serão retornadas todas as associações válidas da linha de A com as linhas de B, podendo haver mais do que uma correspondência em B para cada linha de A.
O resultado de uma junção pode ser utilizado para retornar os dados para um usuário ou aplicação, mas também pode ser referenciado em uma consulta como uma nova tabela, permitindo que novas junções e filtros sejam realizados sobre este sub-resultado. Além disso, pode-se selecionar colunas específicas de cada tabela participante de uma junção ou mesmo não retornar colunas de uma tabela.
INNER JOIN : A junção mais utilizada para explorar os relacionamentos em tabelas é o INNER JOIN.
Através desta junção, são retornadas todas as linhas das tabelas A e B que correspondam ao critério estabelecido na cláusula ON.
Podemos juntar os dados de nossas tabelas #a e #b utilizando o comando abaixo:
SELECT * FROM #a A
INNER JOIN #b B
ON A.id = B.id
LEFT JOIN : Um outro tipo de junção disponível na linguagem T-SQL é o LEFT JOIN. Ao juntar a tabela
A com a tabela B utilizando o LEFT JOIN, todas as linhas de A serão retornadas, mesmo que não seja encontrada uma linha em B que atenda ao critério de alguma linha em A.
Se uma linha da tabela A não estiver associada a uma linha da tabela B e o resultado da consulta apresentar colunas da tabela B, estas colunas serão retornadas com o valor NULL para esta linha.
Abaixo, temos o comando para realizar um LEFT JOIN entre as tabelas :
SELECT * FROM #a a
LEFT JOIN #b b
ON a.id = b.id
O RIGHT JOIN é muito