Ir para conteúdo

POWERED BY:

Arquivado

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

roachdcl

Select com in

Recommended Posts

Galera eu tenho um problema, não tenho experiência com banco de dados, preciso de ajuda:

 

Eu tenho 2 tabelas:

 

Clientes e emails. Na tabela de clientes eu tenho 2 campos (cliente, mail).No campo cliente, é o nome do cliente, e no campo email é o email do cliente, mas no campo de e-mail podem ter 2 e-mails separados por ";". Na tabela de emails tenho 2 campos (id,mail). Id é um id da mensagem, e mail é o endereço de onde veio a mensagem, nesse campo mail só pode haver 1 endereço de e-mail. Exemplo:

 

Cliente:

 

cliente | mail

cli1 | cli1.1@cli1.com

cli2 | cli2.1@cli2.com;cli2.2@cli2.com

cli3 |

 

Emails:

 

id | mail

msg1| cli1.1@cli1.com

msg2| cli2.2@cli2.com

msg3| cli3.1@cli3.com

msg4| cli2.1@cli2.com

 

Reparem que existe o e-mail do cli3 na tabela de emails, mas não existe na tabela de clientes. É exatamente isso q eu preciso descobrir, quais emails existem na tabela de emails, q não estão cadastrados para nenhum cliente na tabela de clientes. estas tabelas não possuem nenhum relacionamento, não existe uma chave estrangeira de cliente na tabela de e-mails. O problema é q existem clientes q têm mais de 1 e-mail cadastrado, separado pelo ";". Alguém pode ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, nestes casos você deve usar o like.

 

Assim funcionou para mim.

 

select * from emails

where not exists (select 1 from client where cliente.mail like '%'+Email.mail+'%')

 

No exemplo acima, irao retornar os registros cujo mail nao esta vinculado a nenhum cliente.

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.