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 © 2014   1keydata.com   Todos os direitos reservados.


SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL LIKE
SQL ORDER BY
SQL Funções
SQL COUNT
SQL GROUP BY
SQL HAVING
SQL ALIAS
SQL Join
SQL Outer Join
SQL CONCATENATE
SQL SUBSTRING
SQL TRIM
SQL LENGTH
SQL REPLACE
SQL DATEADD
SQL DATEDIFF
SQL DATEPART
SQL GETDATE
SQL SYSDATE




Mapa do site