Testando duas tabelas e pegando apenas resultado que contem em uma que não contem na outra
03/07/2018
0
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
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
Demetrio Lopes
Curtir tópico
+ 0
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
Emerson Nascimento
Responder
Mais Posts
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
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
Clique aqui para fazer login e interagir na Comunidade :)