Explorando os Tipos de Join – Parte I Olá ! Join é a ferramenta básica de trabalho nos bancos de dados relacionais. É através dos diferentes tipos de join que conseguimos recuperar dados de uma ou mais tabelas com o auxílio dos relacionamentos existentes. Nessa matéria discutiremos os 4 modêlos de join (inner join, left join, right join e full outer join); aprenderemos também como escolher o tipo certo de join para cada situação. Para os exemplos a seguir serão consideradas duas tabelas : produto e venda. A tabela venda - como o prórpio nome sugere - irá registrar vendas de itens cadastrados na tabela produto, mas pela característica do negócio também serão permitidas vendas de produtos sem cadastro. O script abaixo irá criar e popular as tabelas venda e produto: /* criação da tabela produto */ /* criação da tabela venda.*/ create table venda /* populando a tabela produto */ insert into produto values (101001,'Livro-1') /* populando a tabela venda */ insert into venda (cod_produto,qtde,vlr_unit) values (101001,2,14.00) Figura-1: Relacionamento entre as tabelas produto e venda
Observemos o seguinte: A área em vermelho representa os produtos que foram cadastrados mas não foram vendidos.Para resgatar esses produtos devemos utilizar um left join , ligando um filtro para listar SOMENTE as linhas EXISTENTES na tabela produto SEM CORRESPONDÊNCIA na tabela venda ; A área em azul representa produtos que foram vendidos e não possuem cadastro. Para resgatar esses produtos deveremos utilizar um right join ligando um filtro para listar SOMENTE as linhas EXISTENTES na tabela venda SEM CORRESPONDÊNCIA na tabela produto ; A área em verde representa a intersecção dos dois conjuntos, isto é, produtos que foram vendidos e possuem cadastro. Para selecionar as linhas que possuem equivalência nas duas tabelas utilizamos o inner join ; Para representar a união de todos os produtos com todas as vendas, independentemente de relacionamento (áreas em vermelho+verde+azul) utilizamos um full outer join. Agora que conhecemos toda a teoria sobre os modêlos de join, seria interessante alguns exemplos práticos, não é mesmo ? Então não perca a continuação dessa matéria. Um grande abraço a todos! Paulo Ribeiro
|
|
||||||||||||||||||||||||||||||||||||||
Todos os direitos reservados: DevMedia Group |