Ir para conteúdo

POWERED BY:

Arquivado

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

leo_SJCampos

[Resolvido] Nao pegar registros duplicados em tableas diferentes

Recommended Posts

Pessoal tenho uma dúvida...

 

Tenho 2 tabelas...

 

Usuario e Usulog, essas tabelas podem ter ou não um mesmo registro...

 

por exemplo

 

Usulog -> nome:leonardo, id:1, status:4

Usuario-> nome:leonardo, id:1, status:1

 

Caso aconteça de nas duas tabelas terem o mesmo registro, eu queria pegar o registro do usulog e desprezar o do usuario.

Tem como fazer isso?

 

Valeu pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, valeu pela resposta ai amigo, mas ainda não consegui... não manjo muito de sql e esse ta pegando.

 

tentei fazer algo do tipo

 


SELECT DISTINCT * FROM usulog
 WHERE EXISTS (SELECT * FROM usuario
               WHERE nome like '%LEONARDO%');

 

ou seja ele pegar do usuario caso exista aquele registro... mas deu errado.. nao era bem isso o que eu queria...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal tenho uma dúvida...

 

Tenho 2 tabelas...

 

Usuario e Usulog, essas tabelas podem ter ou não um mesmo registro...

 

por exemplo

 

Usulog -> nome:leonardo, id:1, status:4

Usuario-> nome:leonardo, id:1, status:1

 

Caso aconteça de nas duas tabelas terem o mesmo registro, eu queria pegar o registro do usulog e desprezar o do usuario.

Tem como fazer isso?

 

Do usuário

 

select id from usuario

 

Do log

 

select * from userlog

 

"Juntando"

 

select * from userlog where id not in (select id from usuario)

 

 

Valeu pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Brother... mas dessa forma ele não vai listar nada do usuario e só o do usulog né?

 

o que eu tava precisando era.. em um unico select listar tudo que tivesse no usuario e usulog where o nome = 'leonardo' mas caso o id do usulog fosse igual do usuario ele pegar o registro do usulog e nao listar o do usuario, mas depois disso continuar na busca até encontrar todos os registros nas duas tabelas...

 

complicado né? hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta com union ...

 

select id,status 
from userlog 
where id not in (select id 
                from usuario)
union 
select id,status 
from   usuario

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother, ta quase dando certo...

select nome, status, tmpcodclsj
from usuario 
where tmpcodclsj not in (select tmpcodclsj from usulog 
                          where tmpcodclsj = '000001') 
and nome like '%LEONARDO%'
and cliente = '1322'


union 

select nome, status, tmpcodclsj 
from usulog 
where nome like '%LEONARDO%'
and cliente = '1322'

 

só que repare que no subselect depois do not in eu to passando o tmpcodclsj no where, e na hora da consulta de verdade eu não terei essa informação, somente o nome do usuario....

 

Acho que nao da pra fazer do jeito que eu to querendo né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

not exists

 

select nome, status, tmpcodclsj
from usuario 
where tmpcodclsj not exists (select tmpcodclsj 
                            from usulog 
                            where usulog.nome = usuario .nome
                            and usulog.cliente = usuario .cliente) 
and nome like '%LEONARDO%'
and cliente = '1322'


union 

select nome, status, tmpcodclsj 
from usulog 
where nome like '%LEONARDO%'
and cliente = '1322'

 

Check apenas as chaves das tabelas

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.