Testando duas tabelas e pegando apenas resultado que contem em uma que não contem na outra

03/07/2018

2

Boa noite galera, estou fazendo um teste e fiz um select na tabela CLIENTES, após fiz uma cópia (completa até cabeçalho) dessas informações e coloquei
tudo no Excel e a partir dele (Excel) criei uma tabela com o nome CLIENTESX no meu banco (importei a tabela).
depois fiz um insert na tabela CLIENTES com um usuário diferente do que tem no CLIENTESX
(MESA DE TESTE ORGANIZADA, AGORA, VAMOS AO TESTE)
fiz o seguinte select:
select *
from CLIENTES a
left join CLIENTESX b on a.IdCliente = b.IdCliente
where a.NomeCliente <> b.NomeCliente

resultado: só tive o nome das colunas.
Intenção: achar só o usuário que não existe na tabela CLIENTESX

Alguém poderia me dá uma força? Muito obrigado
Responder

Post mais votado

04/07/2018

select a.*
from CLIENTES a
left join CLIENTESX b on b.IdCliente = a.IdCliente
where b.NomeCliente is null
Responder

Mais Posts

04/07/2018

Fernando C

tente sem o "where".
Responder

04/07/2018

Demetrio Lopes

como assim?
Responder

04/07/2018

Luiz Santos

Bom dia Demetrio.
Quando você usa um LEFT JOIN você está dizendo para listar todos os dados da tabela a, mesmo que não exista a contrapartida na tabela b.

Nesse caso, quando ele trouxer o registro "novo" que você cadastrou em a, para b ele vai ser nulo.

Quando trabalhamos com campos nulo, não conseguimos usar campo da tabela a <> de campo da tabela b.

Você precisa usar no where campo da tabela b IS NULL.

Existem outras formas de trazer esse dado, usando o NOT IN ou NOT EXISTS.

Faça o teste e avisa se deu certo.

Grande abraço
Responder

04/07/2018

Demetrio Lopes

pow que aula, valeu mesmo mano, deu certo, muito obrigado Luiz Fernando
Responder

04/07/2018

Demetrio Lopes

Emerson: obrigado cara, deu certo!! valeu mesmo
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar