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

? 老湿机69福利区无码_老子影院午夜伦无码_开心亚洲五月丁香五月