Ausência de dados consultados só não sugere atualmente presente. Um registro faltando , no entanto, é um dado que poderia ou deveria estar presente, mas não é. Por exemplo, detalhes do cliente e as ordens residem em tabelas Customers e Orders . A lista de clientes é solicitado, e você, o programador, assumem cada cliente tem uma ordem. Oferecer aos clientes a partir de encomendas deverão fornecer a lista de clientes correctas, mas não é? Listagem de clientes de clientes podem render mais , sugerindo alguns clientes faltando ordens. Você deve saber que os clientes estão faltando ordens e , em seguida, entender se esta circunstância é por design ou um bug. Instruções
um
Apresentar clientes distintos na tabela CLIENTES . Por exemplo :
Selecione CLIENTES C.CUSTOMERIDFROM DISTINTAS C
2
Apresentar clientes distintos em ordens de mesa. Por exemplo :
Selecione ORDENS O.CUSTOMERIDFROM DISTINTAS O
3
Determinar clientes com encomendas em falta através da combinação de etapas 1 e 2 em uma subconsulta correlacionada
Selecionar CLIENTES C.CUSTOMERIDFROM DISTINTAS CWHERE NÃO EXISTE (SELECT * FROM pEDIDOS OWHERE O.CUSTOMERID = C.CUSTOMERID )
EXISTE é uma função do Oracle que testa a existência de registros subconsulta retornou . Prefaciando com "e não" os testes para a ausência de registros. Aqui , a subconsulta corresponde clientes em ambas as tabelas . Jogos retornar resultados , o que exclui os que combinava CUSTOMERID da do principal conjunto de resultados. Só CUSTOMERID Com páreo O.CUSTOMERID seria exibido .
4
Alternativamente, determinar registros perdidos a partir de uma visão composta de cusotmer e mesas ordem.
Selecionar os clientes C.CUSTOMERIDFROM DISTINTAS C , ORDENS OWHERE C.CUSTOMERID = O.CUSTOMERID (+) e O.CUSTOMERID é nulo
Se você suspeitar tabela Order pode ser a falta de registros , em seguida, tentar esta consulta para exibir C.CUSTOMERID e lado O.CUSTOMERID a lado. O (+) invoca uma associação externa à esquerda , que diz Oracle para mostrar todos os dados correspondentes da instrução WHERE mais qualquer C.CUSTOMERID ' s da tabela da esquerda que não têm correspondência O.CUSTOMERID ' s na tabela do lado direito.
Se houver C.CUSTOMERID ' s sem O.CUSTOMERID correspondência ' s, eles vão mostrar com valores nulos para a inexistente O.CUSTOMERID ' s . As linhas que possuem tais valores nulos representam os registros de pedidos que faltam.
Se a lista é muito longa para a inspeção visual, a segunda instrução WHERE garante que os resultados são limitados a C.CUSTOMERID ' s com ordens desaparecidas.