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
Tabela Geography
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:
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.
Copyright © 2024 1keydata.com Todos os direitos reservados. |