SQL Outer Join




SQL > Comandos SQL > Outer Join

Anteriormente, abordamos a união esquerda, ou união interna, onde selecionamos linhas comuns nas tabelas participantes para uma união. E nos casos em que pretendemos selecionar elementos numa tabela independentemente de estarem presentes numa segunda tabela? Agora será necessário utilizar o comando SQL OUTER JOIN.

A sintaxe para efetuar uma união externa na linguagem SQL depende da base de dados. Por exemplo, em Oracle, iremos colocar o sinal "(+)" na cláusula WHERE no outro lado da tabela para a qual queremos incluir todas as linhas.

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 o montante de vendas de todas as lojas. Se efetuarmos uma união normal, não seremos capazes de obter o que pretendemos porque iremos ignorar "New York," pois não aparece na tabela Store_Information. Como tal, é necessário efetuar uma união externa nas duas tabelas acima:

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

Note que neste caso estamos a utilizar a sintaxe Oracle para a união externa.

Resultado:

Store_Name SALES
Boston 700
New York
Los Angeles 1800
San Diego 250

Nota: NULL é obtido quando não existir qualquer correspondência na segunda tabela. Nesse caso, "New York" não aparece na tabela Store_Information, e por isso a coluna "SALES" correspondente é NULL.

SQL Concatenate >>



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