1
resposta

[Dúvida] Definição de junção

Uma junção poderia ser uma relação de todas as combinação de todas as tabelas? Esse conceito ainda é meio confuso, mas estou aprendendo mais e mais, obrigado Alura!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Boa noite alexandre, acredito que quando você fala de junção esta se referindo a JOIN correto?

caso seja isso segue uma explicação da forma que eu entendo esse conceito. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

De uma olhada nesses graficos e em cada tipo de join, observe que em todo os exemplos existe\ uma intersecção entre A e B, ou seja, uma coluna na tabela contem um conjunto de registros igual a outra coluna na outra tabela e a partir disso elas podem ser relacionadas

Cliente

clienteIDclienteNomeclienteEndereco
1Luke SkywalkerTatooine
2Darth VaderEstrela da Morte
3Princess LeiaAlderaan

Compra

compaIDprodutoIDclienteID
131
2572
313
4285

Note, ambas as tabelas tem uma coluna em comum (nem sempre essas colunas tem o mesmo nome ok? coloquei assim para facilitar a explicação)

suponhamos que eu queira criar uma tabela cliente_x_compra onde eu retorno todos as vendas e quem as fez e para isso eu use uma junção do tipo inner left que vai me trazer apenas as linhas que correspondem a tabela a esquerda da junção

junção do tipo inner cliente_x_compra

compaIDprodutoIDclienteIDclienteNomeclienteEndereco
131Luke SkywalkerTatooine
2572Darth VaderEstrela da Morte
313Princess LeiaAlderaan

percebe que a linha onde o clienteID era 85 não apareceu na junção? isso porque esse registro não existe na tabela cliente.

mas essa é uma caracteristica apenas de inner join, como as imagens mostram isso pode variar dependendo do tipo ao qual você escolhe


não confunda join com union

  • Join:

    • Join é usado para combinar linhas de duas ou mais tabelas com base em uma condição relacionada.
    • Existem diferentes tipos de join: inner join, left join, right join e full outer join.
    • Inner join retorna apenas as linhas que têm correspondências nas duas tabelas envolvidas na junção. Se não houver uma correspondência, essas linhas não serão incluídas no resultado.
    • Por isso, quando você menciona que a linha com ClienteID 85 não apareceu na junção, isso se deve ao fato de que não há um ClienteID 85 na tabela cliente, e portanto, não há uma correspondência para essa linha na junção.
  • Union:

    • Union é usado para combinar o resultado de duas ou mais consultas SQL em uma única tabela de resultados.
    • Ele combina todos os resultados de diferentes conjuntos de resultados em uma única tabela de resultados.
    • Diferentemente do join, union não se baseia em uma condição relacionada entre as tabelas; ele simplesmente empilha os resultados das consultas uma em cima da outra.