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!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!
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.
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
| clienteID | clienteNome | clienteEndereco |
|---|---|---|
| 1 | Luke Skywalker | Tatooine |
| 2 | Darth Vader | Estrela da Morte |
| 3 | Princess Leia | Alderaan |
Compra
| compaID | produtoID | clienteID |
|---|---|---|
| 1 | 3 | 1 |
| 2 | 57 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 85 |
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
| compaID | produtoID | clienteID | clienteNome | clienteEndereco |
|---|---|---|---|---|
| 1 | 3 | 1 | Luke Skywalker | Tatooine |
| 2 | 57 | 2 | Darth Vader | Estrela da Morte |
| 3 | 1 | 3 | Princess Leia | Alderaan |
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:
Union: