SQL Join




SQL > Comandos SQL > Join

Agora iremos abordar as uniões. Para efetuar uniões corretas na linguagem SQL, são necessários muitos dos elementos introduzidos até agora. Suponhamos que temos as duas tabelas seguintes:

Tabela Store_Information
Store_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
Los Angeles30008-Jan-1999
Boston70008-Jan-1999

Tabela Geography
Region_NameStore_Name
EastBoston
EastNew York
WestLos Angeles
WestSan Diego

e queremos descobrir quais as vendas por região. Constatamos que a tabela Geography inclui informações sobre regiões e lojas e a tabela Store_Information contém informações de vendas para cada loja. Para obter as informações de vendas por região, é necessário combinar as informações das duas tabelas. Examinando as duas tabelas, descobrimos que estão ligadas através do campo comum, store_name. Primeiro iremos apresentar a instrução SQL e explicar posteriormente a utilização de cada segmento:

SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name
GROUP BY A1.Region_Name;

Resultado:

REGION SALES
East 700
West 2050

As duas primeiras linhas dizem ao sistema SQL para selecionar dois campos, o primeiro é o campo "region_name" da tabela Geography (com alias como REGION), e o segundo é o somatório do campo "Sales" da tabela Store_Information (com alias como SALES). Repare que agora os alias das tabelas são utilizados aqui: Geography possui alias como A1, Store_Information com alias como A2. Sem alias, a primeira linha seria

SELECT Geography.Region_Name REGION, SUM(Store_Information.Sales) SALES

que é muito mais inadequada. Na sua essência, os alias de tabelas tornam toda a instrução SQL muito mais fácil de compreender, em especial quando se encontram incluídas várias tabelas.

A seguir, damos atenção à linha 3, a instrução WHERE. É aqui que especificamos a condição de união. Neste caso, queremos garantir que o conteúdo de "store_name" na tabela Geografia corresponde ao da tabela Store_Information e a forma de o fazer é defini-las de forma igual. A instrução WHERE é essencial para garantir que obtém o resultado correto. Sem a instrução WHERE correta, será obtida uma União Cartesiana. As uniões cartesianas irão produzir uma consulta com todas as combinações possíveis das duas (ou qualquer que seja o número de tabelas na instrução FROM). Nesse caso, uma união cartesiana iria resultar num resultado com o total de 4 x 4 = 16 linhas.

SQL Outer Join >>



Copyright © 2016   1keydata.com   Todos os direitos reservados.