Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ana Fontoura

[Resolvido] not exists

Recommended Posts

olá, gostaria de saber qual a diferença entre o not exists e o not in, eu li aqui no fórum mesmo que os dois faziam a mesma coisa, e que era pra sempre dar preferencia pelo not exists porque é mais eficiente..

o caso é que tenho um trabalho e o professor pediu pra usar um not exists, ai fiz com o mesmo uso do not in, mas nao funciona de jeito nenhum, e se troco o not exists por not in funciona perfeitamente, mas não posso usar o not in nesse caso, ja que o professor pediu o not exists..

 

SELECT codFunc, nomeFunc
FROM funcionario
WHERE codFunc
NOT EXISTS
(    
    SELECT codFunc
    FROM venda
)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dois exemplos

 

Membros que não postaram ...

 

SELECT *
FROM   MEMBROS
WHERE NOT EXISTS (SELECT NULL
                  FROM POSTS
                  WHERE POSTS.IDMEMBRO = MEMBRO.ID)

SELECT *
FROM MEMBROS
WHERE ID NOT IN (SELECT IDMEMBRO
                 FROM   POSTS) 

Melhor é relativo em geral é sempre bom testar e ver o plano de execução (MySql gera isto?).

 

Mais em geral o uso de um outer join e testar os nulos é melhor nestes casos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.