Oráculo junções externas são um modo de exibição de dados sem filtragem adicional de registros. Se duas tabelas contêm dados relacionados , há uma probabilidade de que uma das tabelas pode não ter nenhum registro. Isso só pode acontecer quando não há restrições nas tabelas especificando que os registros devem estar presentes. Por exemplo , se uma empresa tem um número de clientes , é possível que , em qualquer momento o cliente pode não ter qualquer produto encomendado . A situação inversa também pode ser verdade , em que os produtos não podem ter clientes atribuídos a eles. Instruções
1
Selecione duas tabelas do banco de dados Oracle para que possa haver registros existentes em um, mas não necessariamente na outra. A tabela com os registros , opcionalmente, em falta será conhecida como a tabela externa neste caso.
2
Escolha a ordem da consulta, em termos de decidir qual das tabelas constantes da consulta ( para a esquerda ou direita) irá formar a junção externa . Um exemplo torna isso mais claro o seguinte:
selecionar c.customerlastname ,
p.ProductID
de
cliente c , productorders p
onde c.customerid = p.customerid ;
esta consulta uma decisão tem de ser feita, você exige uma lista de todos os pedidos de produtos com ( ou sem) clientes ou a situação inversa ou seja, uma lista de clientes com ou sem encomendas ?
3
Coloque um indicador (+) para identificar a tabela de quais linhas opcionais são devolvidos ou seja, ter registros ou não. Neste exemplo a tabela de produtos podem ou não podem ter ordens contra eles, e, portanto, esta será uma associação externa à esquerda :
selecionar c.customerlastname ,
p.ProductID
de
cliente c , productorders p
onde c.customerid = p.customerid ( +);
Se a consulta necessária para encontrar os produtos que não podem ter os clientes contra eles, a cláusula onde seria:
onde c.customerid (+) = p.customerid ;
4
Execute a consulta e retornar o resultado . O exemplo a junção externa esquerda retornará registros semelhantes ao seguinte :
c.customerlastname 123423
Jones
Carr 89.654
Bernardstein 66543
Note que para esta associação externa à esquerda , o único cliente na lista sem uma ordem é " Jones . "