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_name Sales Date
Los Angeles 1500 € 05-Jan-1999
San Diego 250 € 07-Jan-1999
Los Angeles 300 € 08-Jan-1999
Boston 700 € 08-Jan-1999

Tabela Geography
region_name store_name
East Boston
East New York
West Los Angeles
West San 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 © 2013   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